测试点2错的来:1033 旧键盘打字 (20分)
立志用更少的代码做更高效的表达
PAT乙级最优题解——>传送门
旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现。现在给出应该输入的一段文字、以及坏掉的那些键,打出的结果文字会是怎样?
输入格式:
输入在 2 行中分别给出坏掉的那些键、以及应该输入的文字。其中对应英文字母的坏键以大写给出;每段文字是不超过 10
5
个字符的串。可用的字符包括字母 [a-z, A-Z]、数字 0-9、以及下划线 _(代表空格)、,、.、-、+(代表上档键)。题目保证第 2 行输入的文字串非空。注意:如果上档键坏掉了,那么大写的英文字母无法被打出。
输出格式:
在一行中输出能够被打出的结果文字。如果没有一个字符能被打出,则输出空行。
输入样例:
7+IE.
7_This_is_a_test.
输出样例:
_hs_s_a_tst
解题思路: 定义一个数组a置0, 输入s1,s2字符串, 对于s1中出现的每一个字符, 分三种情况,将对应的a值置1:
- 如果是字母, 则将对应的大小写字母都置1, 如:
a['A'] = 1; a['a'] = 1;
- 如果是
+
(表示shift键坏了), 则将所有大写字母置1 - 如果是其他, 则直接置1
最后遍历s2串,对于a[s2[i]] = 0
的值进行输出即可。
测试点2出错:需要用getline输入字符串(在PAT里, cin输入字符串有很多bug, 有很多时候并不是样例过不了,就是单纯的因为用了cin输入字符串)
代码展示
#include<bits/stdc++.h>
using namespace std;
int a[300];
int main() {string s1, s2;getline(cin, s1);getline(cin, s2);for(int i = 0; i < s1.length(); i++) {if(isalpha(s1[i])) {a[toupper(s1[i])] = 1;a[tolower(s1[i])] = 1;
// a[s1[i]] = 1; } else if(s1[i] == '+') {for(int i = 'A'; i <= 'Z'; i++) a[i] = 1;} else {a[s1[i]] = 1;}}int len2 = s2.length();for(int i = 0; i < len2; i++) {if(a[s2[i]] == 0) cout << s2[i];}cout << '\n';
return 0; }
每日一句
每日零星的变好,最后也会如星河般闪耀。
测试点2错的来:1033 旧键盘打字 (20分)相关推荐
- PAT乙级 1033 旧键盘打字 (20 分)
1033 旧键盘打字 (20 分) 旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现.现在给出应该输入的一段文字.以及坏掉的那些键,打出的结果文字会是怎样? 原题链接 代码 #incl ...
- 【PAT乙】1033 旧键盘打字 (20分) 字符串
1033 旧键盘打字 (20分) 旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现.现在给出应该输入的一段文字.以及坏掉的那些键,打出的结果文字会是怎样? 输入格式: 输入在 2 行中 ...
- 1033 旧键盘打字 (20 分)
1033 旧键盘打字 (20 分) 旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现.现在给出应该输入的一段文字.以及坏掉的那些键,打出的结果文字会是怎样? 输入格式: 输入在 2 行 ...
- C++学习之路 | PTA乙级—— 1033 旧键盘打字 (20 分)(精简)
1033 旧键盘打字 (20 分) 旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现.现在给出应该输入的一段文字.以及坏掉的那些键,打出的结果文字会是怎样? 输入格式: 输入在 2 行 ...
- PAT 1033 旧键盘打字 (20 分) C++
1033 旧键盘打字 (20 分) 旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现.现在给出应该输入的一段文字.以及坏掉的那些键,打出的结果文字会是怎样? 输入格式: 输入在 2 行 ...
- 1033 旧键盘打字 (20 分)(c语言)
旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现.现在给出应该输入的一段文字.以及坏掉的那些键,打出的结果文字会是怎样? 输入格式: 输入在 2 行中分别给出坏掉的那些键.以及应该输入 ...
- 1033 旧键盘打字 (20分)
旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现.现在给出应该输入的一段文字.以及坏掉的那些键,打出的结果文字会是怎样? 输入格式: 输入在 2 行中分别给出坏掉的那些键.以及应该输入 ...
- 【PAT乙级】1033 旧键盘打字 (20 分)
题目地址 #include<bits/stdc++.h> using namespace std; map<char,int>mp; int main(void) {strin ...
- 1033 旧键盘打字(20)(20 分)
1033 旧键盘打字(20)(20 分) 旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现.现在给出应该输入的一段文字.以及坏掉的那些键,打出的结果文字会是怎样? 输入格式: 输入在2 ...
最新文章
- freemodbus线圈中的位操作
- 每天一道LeetCode-----回文链表
- ES6笔记(1) -- 环境配置支持
- PostgreSQL COPY 导入/导出数据
- 反质数问题,求不大于n的最大反质数
- bmp180气压传感器工作原理_各种传感器工作原理汇总
- datagridview 设置选中行_Sublime Text 3最好的功能、插件和设置
- Windows科研工具
- ico在线制作,网站小图标Favicion.ico在线制作工具软件
- 神舟K650c i7(W350STQ)上成功装好Mac OS X 10.9,兼谈如何安装WinXP、7、8.1、OSX、Ubuntu五系统(Chameleon、MBR)
- 2005。1。22,闹洞房安排。
- 买天猫店网店转让商标过户事项
- Shopee通知:未通过实名认证将导致订单无法正常出运
- win10笔记本触摸板点击没反应
- 初识C语言:多组输入的用法
- eclipse报错!!!!
- 联想笔记本打开野兽模式
- 抖音里王者荣耀游戏视频搞怪的配音怎么做
- IEEE Robotics and Automation Letters(RA-L)与ICRA投稿
- WPF中System.Windows.Interactivity的使用