1033 旧键盘打字 (20分)

2023-11-12

这道题很坑的一点就是,有可能坏掉的键盘是空串(所有的键都是好的),如下测试用例

input
NULL
abcdefg

output
abcdefg

所以,用字符串数组的不能直接用scanf("%s",str);读入,用string的也不能直接用cin读入

分别改为用cin.getline(str,length);和getline(cin,str)就好啦

本蒻姬代码又臭又长

#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
int vis[100],vis2[20],vis3[10];
int main() {
	bool flag=0;
	int length1,length2;
	string broken,input;
	getline(cin,broken);
	getline(cin,input);
	length1=broken.length();
	length2=input.length();
	for(int i=0; i<length1; i++) {
		if(broken[i]>='a'&&broken[i]<='z') {
			vis[broken[i]-'a']=1;
		} else if(broken[i]>='A'&&broken[i]<='Z') {
			vis[broken[i]-'A']=1;
		} else if(broken[i]>='0'&&broken[i]<='9') {
			vis2[broken[i]-'0']=1;
		} else if(broken[i]=='_') vis3[0]=1;
		else if(broken[i]==',') vis3[1]=1;
		else if(broken[i]=='.') vis3[2]=1;
		else if(broken[i]=='-') vis3[3]=1;
		else if(broken[i]=='+') vis3[4]=1;
	}
	for(int i=0; i<length2; i++) {
		if(input[i]>='0'&&input[i]<='9') {
			if(!vis2[input[i]-'0']) printf("%c",input[i]);
		}  else if(input[i]>='a'&&input[i]<='z') {
			if(vis[input[i]-'a']) continue;
			printf("%c",input[i]);
		} else if(input[i]>='A'&&input[i]<='Z') {
			if(vis[input[i]-'A']) continue;
			if(!vis3[4]) printf("%c",input[i]);
		} else if(input[i]=='_') {
			if(!vis3[0]) printf("_");
		} else if(input[i]==',') {
			if(!vis3[1]) printf(",");
		} else if(input[i]=='.') {
			if(!vis3[2]) printf(".");
		} else if(input[i]=='-') {
			if(!vis3[3]) printf("-");
		} else if(input[i]=='+'){
			if(!vis[4]) printf("+");
		}
	}

	return 0;
}

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

1033 旧键盘打字 (20分) 的相关文章

  • PAT乙级题解1016——1016 部分A+B(Java)

    PAT乙级题解1016 1016 部分A 43 B xff08 Java xff09 一 xff1a 题目 二 xff1a 输入输出 输入样例 xff1a span class token number 3862767 span span
  • PAT 1005 Spell It Right

    Given a non negative integer N your task is to compute the sum of all the digits of N and output every digit of the sum
  • PAT BASIC LEVEL 1054. 求平均值 (20)

    1054 求平均值 20 本题的基本要求非常简单 给定N个实数 计算它们的平均值 但复杂的是有些输入数据可能是非法的 一个 合法 的输入是 1000 1000 区间内的实数 并且最多精确到小数点后2位 当你计算平均值的时候 不能把那些非法的
  • PAT乙级1037 在霍格沃茨找零钱 (20分)

    pragma warning disable 4996 include
  • B1094 谷歌的招聘 (20 分)

    2004 年 7 月 谷歌在硅谷的 101 号公路边竖立了一块巨大的广告牌 如下图 用于招聘 内容超级简单 就是一个以 com 结尾的网址 而前面的网址是一个 10 位素数 这个素数是自然常数 e 中最早出现的 10 位连续数字 能找出这个
  • 分支-20. 计算符号函数的值(10)

    对于任一整数n 符号函数sign n 的定义如下 请编写程序计算该函数对任一输入整数的值 输入格式 输入在一行中给出整数n 输出格式 在一行中按照格式 sign n 函数值 输出该整数n对应的函数值 输入样例 1 10 输出样例 1 sig
  • 交换机与路由器技术-35-端口多路复用PAT

    目录 一 端口多路复用 PAT 1 1 概述 1 2 端口映射 服务器映射 1 3 配置端口多路复用 1 3 1 方式一 使用单独的公网IP 第一步 定义内网和外网接口 第二步 定义内网地址范围 外网地址 1 使用ACL 允许某个范围的内网
  • 1031. 查验身份证(15)

    一个合法的身份证号码由17位地区 日期编号和顺序编号加1位校验码组成 校验码的计算规则如下 首先对前17位数字加权求和 权重分配为 7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2 然后将计算的和对11取模得到值Z 最
  • pta 一元多项式的乘法与加法运算

    7 2 一元多项式的乘法与加法运算 20 分 设计函数分别求两个一元多项式的乘积与和 输入格式 输入分2行 每行分别先给出多项式非零项的个数 再以指数递降方式输入一个多项式非零项系数和指数 绝对值均为不超过1000的整数 数字间以空格分隔
  • 1004. 成绩排名 (20)

    读入n名学生的姓名 学号 成绩 分别输出成绩最高和成绩最低学生的姓名和学号 输入格式 每个测试输入包含1个测试用例 格式为 第1行 正整数n 第2行 第1个学生的姓名 学号 成绩 第3行 第2个学生的姓名 学号 成绩 第n 1行 第n个学生
  • 1041. 考试座位号(15)

    每个PAT考生在参加考试时都会被分配两个座位号 一个是试机座位 一个是考试座位 正常情况下 考生在入场时先得到试机座位号码 入座进入试机状态后 系统会显示该考生的考试座位号码 考试时考生需要换到考试座位就座 但有些考生迟到了 试机已经结束
  • 7-7 12-24小时制 (15 分) (C语言实现)

    题目 思路 直接跟着题目往下写 没有过多思考 后面答案部分正确 才重新写了12点那里的程序 11min 代码 include
  • 1048 数字加密 (20 分)

    题目描述 本题要求实现一种数字加密方法 首先固定一个加密用正整数 A 对任一正整数 B 将其每 1 位数字与 A 的对应位置上的数字进行以下运算 对奇数位 对应位的数字相加后对 13 取余 这里用 J 代表 10 Q 代表 11 K 代表
  • 集合相似度(PAT)

    题目链接 https www patest cn contests gplt L2 005 一开始用map超时了 总是有一组数据超时 当时觉得很纳闷 后来学到了 其实set也是可以开数组的 map也是 include
  • PAT 1018 锤子剪刀布 (20分)

    1018 锤子剪刀布 20分 大家应该都会玩 锤子剪刀布 的游戏 两人同时给出手势 胜负规则如图所示 现给出两人的交锋记录 请统计双方的胜 平 负次数 并且给出双方分别出什么手势的胜算最大 输入格式 输入第 1 行给出正整数 N 10 5
  • PAT-组个最小数

    题目描述 给定数字0 9各若干个 你可以以任意顺序排列这些数字 但必须全部使用 目标是使得最后得到的数尽可能小 注意0不能做首位 例如 给定两个0 两个1 三个5 一个8 我们得到的最小的数就是10015558 现给定数字 请编写程序输出能
  • 1012.数字分类- PAT乙级真题

    给定一系列正整数 请按要求对数字进行分类 并输出以下 5 个数字 A 1 能被 5 整除的数字中所有偶数的和 A 2 将被 5 除后余 1 的数字按给出顺序进行交错求和 A3 被 5 除后余 2 的数字的个数 A 4 被 5 除后余 3 的
  • 1001 害死人不偿命的(3n+1)猜想 (15 分)

    1001 害死人不偿命的 3n 1 猜想 15 分 卡拉兹 Callatz 猜想 对任何一个正整数 n 如果它是偶数 那么把它砍掉一半 如果它是奇数 那么把 3n 1 砍掉一半 这样一直反复砍下去 最后一定在某一步得到 n 1 卡拉兹在 1
  • ts 流基础(白话讲解).

    author hjjdebug date 2022年 09月 27日 星期二 ts 流就是188个字节构成的流数据 先来点最简单的 ts 头部 4字节 ts 流是47开头的 以188字节为单位的打包流 由4字节包头及包体构成 4字节第一个4
  • 【PAT】B1032 挖掘机技术哪家强 (20 分)_C语言实现

    1 挖掘机技术哪家强 20 分 为了用事实说明挖掘机技术到底哪家强 P A T PAT PAT 组织了一场挖掘机技能大赛 现请你根据比赛结果统计出技术最强的那个学校 输入格式 输入在第 1

随机推荐

  • BG-20k数据集分析及下载

    包含20000张高清背景图片 包含清晰的对象轮廓 可以用做高质量图像生成的研究 此数据集下载流程繁琐 还需要签保证书获得授权等等 可以联系此人 提供高速下载链接 q 2389411778 备注要bg20k数据集
  • centos7 ping: www.baidu.com: Name or service not known

    转自 https www cnblogs com maowenqiang articles 7727910 html root www ping www baidu comping www baidu com Name or service
  • RPC介绍+原理

    RPC 远程过程调用 它是一种通过网络从远程计算机程序上请求服务 而不需要了解底层网络技术的协议 RPC协议假定某些传输协议的存在 如TCP或UDP 为通信程序之间携带信息数据 在OSI网络通信模型中 RPC跨越了传输层和应用层 RPC采用
  • spingboot热部署,实现jsp页面时时刷新

    SpringBoot默认不支持JSP的实时更新 目前有两种解决方案 解决方法1 在配置文件 手工开启实时编译JSP的功能 application yml 配置如下 server jsp servlet init parameters dev
  • 双目标定(三)标定流程(含矫正)

    1 原理 参见单目标定基本原理 2 采集 2 1标定板的制作 大小 应当使得标定板在图像中占比尽可能大一些 占图像长度比例应当超过1 3 如果实在无法保证标定板占图像比例比较大如果占比比较小 则需要尽可能多采集一些图像 平 标定板应当尽可能
  • 单片机基础——使用USART发送和接收数据(DMA模式)

    1 准备工作 硬件准备 开发板 首先需要准备一个小熊派IoT开发板 并通过USB线与电脑连接 2 生成MDK工程 选择芯片型号 打开STM32CubeMX 打开MCU选择器 搜索并选中芯片STM32L431RCT6 配置时钟源 如果选择使用
  • STM32 标准外设SPL库、硬件抽象层HAL库、低层LL库区别?

    1 STM32 之一 HAL库 标准外设库 LL库 ZC Shou的博客 CSDN博客 ll库 仔细阅读 2 STM32标准外设库 HAL库 LL库 King先生 博客园 3 STM32 之 HAL库 戈 扬的博客 仔细阅读 4 STM32
  • sql: SQLite,MySQL,SQL Server

    SQLite 3 CREATE TABLE DuStudentList StudentId INTEGER PRIMARY KEY AUTOINCREMENT StudentName TEXT NOT NULL StudentNO TEXT
  • Oracle 11Gr1监听报错TNS-12542 12560 00512

    环境 Oracle 11Gr1 Linux Redhat 5 重启机器后 数据库监听启动报错如下 TNS 12542 TNS address already in use TNS 12560 TNS protocol adapter err
  • Go_数据类型转换(Sprintf、Format)

    数据类型转换 类型转换是将一种数据类型的变量转为另一种类型的变量 Go强制要求使用显式类型转换 所以语法更能确定语句及表达式的明确含义 转换的时候如果大的转给小的 会有精度损失 数据溢出 比如int64转int8 转换格式 将v转成T类型
  • vscode php debug断点调试

    记录一个我配置debug的总结 大概步骤 下载对应版本xdebug 下载vscode插件 配置 只要跟着一步一步配置即可 在桌面创建一个test文件夹 创建一个index php文件 win r 输出cmd cd到这个文件夹 使用php内置
  • 这一年,我们一起追过的梦想

    这一年 我们一起追过的梦想 梦想是一个好大的话题 是一个振奋人心的词汇 也是一个遥遥无期的词汇 总是给人希望 但是却让人很难把握 这一年我们牢牢的把握住了时间 让它发挥它最大的效益 IT主旋律 键盘上的舞动 这个学期开始接触软件工程项目之C
  • 2013-2014嵌入式开发从业人员调查报告

    调查背景 在嵌入式 移动互联网 物联网等热门技术日益普及的今天 以实现智能化为核心目标的典型技术 已经成为了整个信息产业毋庸置疑的主旋律 特别是近1年 以智能家居 智能医疗 可穿戴设备等为首的大量智能硬件批量的进入到人们的生活 更让这一场智
  • 学习太极创客 — MQTT(七)MQTT 主题进阶

    视频链接 https www bilibili com video BV1Va4y1W7Ub spm id from autoNext vd source b91967c499b23106586d7aa35af46413 资料链接 http
  • 来袭!SOLIDWORKS 2024 主要增强功能

    在SOLIDWORKS软件使用过程中 我们知道您创建了出色的设计 您的出色设计也会得到构建 为了简化和加快从概念到制造产品的产品开发流程 SOLIDWORKS 2024 包含用户驱动的全新增强功能 重点关注 提高工作智能化程度 通过更有效地
  • 软件测试及自动化测试

    软件测试面经 文章目录 软件测试面经 软件测试理论 1 GET和POST请求区别 2 web service的接口如何测试 3 cookie session与Token的区别 4 接口测试该怎么测 5 postman和jemter的区别 6
  • java 151建议_JAVA开发中151个建议

    1 不在常量和变量中出现混淆的字母 2 莫让常量蜕变成变量 3 三元操作符的类型必须一致 4 避免带有变长参数的方法重载 5 别让null值和空值威胁到变长方法 KISS原装 Keep It simple stupid即懒人原装 6 覆写变
  • 6.4集合类

    1 什么是集合 将多个对象合在一起变成一个统一的对象 然后通过这个统一的对象来实现对多个对象的管理 存储 检索 操作 传输数据 在数组里要进行这样的操作 可以会写很多算法 但在集合里 只需要调用其中的方法就可以了 集合也可以对其中的元素进行
  • 【java】Java -jar 运行的程序如何 本地代码远程调试服务器程序

    1 概述 因为要在服务器上进行es远程认证 需要先写个包进行测试一下 需要远程调用 那么改怎么做呢 远程服务命令配置 在服务器启动java jar包的命令中添加 Xdebug Xrunjdwp transport dt socket ser
  • 1033 旧键盘打字 (20分)

    这道题很坑的一点就是 有可能坏掉的键盘是空串 所有的键都是好的 如下测试用例 input NULL abcdefg output abcdefg 所以 用字符串数组的不能直接用scanf s str 读入 用string的也不能直接用cin