立志用更少的代码做更高效的表达


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分)相关推荐

  1. PAT乙级 1033 旧键盘打字 (20 分)

    1033 旧键盘打字 (20 分) 旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现.现在给出应该输入的一段文字.以及坏掉的那些键,打出的结果文字会是怎样? 原题链接 代码 #incl ...

  2. 【PAT乙】1033 旧键盘打字 (20分) 字符串

    1033 旧键盘打字 (20分) 旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现.现在给出应该输入的一段文字.以及坏掉的那些键,打出的结果文字会是怎样? 输入格式: 输入在 2 行中 ...

  3. 1033 旧键盘打字 (20 分)

    1033 旧键盘打字 (20 分) 旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现.现在给出应该输入的一段文字.以及坏掉的那些键,打出的结果文字会是怎样? 输入格式: 输入在 2 行 ...

  4. C++学习之路 | PTA乙级—— 1033 旧键盘打字 (20 分)(精简)

    1033 旧键盘打字 (20 分) 旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现.现在给出应该输入的一段文字.以及坏掉的那些键,打出的结果文字会是怎样? 输入格式: 输入在 2 行 ...

  5. PAT 1033 旧键盘打字 (20 分) C++

    1033 旧键盘打字 (20 分) 旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现.现在给出应该输入的一段文字.以及坏掉的那些键,打出的结果文字会是怎样? 输入格式: 输入在 2 行 ...

  6. 1033 旧键盘打字 (20 分)(c语言)

    旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现.现在给出应该输入的一段文字.以及坏掉的那些键,打出的结果文字会是怎样? 输入格式: 输入在 2 行中分别给出坏掉的那些键.以及应该输入 ...

  7. 1033 旧键盘打字 (20分)

    旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现.现在给出应该输入的一段文字.以及坏掉的那些键,打出的结果文字会是怎样? 输入格式: 输入在 2 行中分别给出坏掉的那些键.以及应该输入 ...

  8. 【PAT乙级】1033 旧键盘打字 (20 分)

    题目地址 #include<bits/stdc++.h> using namespace std; map<char,int>mp; int main(void) {strin ...

  9. 1033 旧键盘打字(20)(20 分)

    1033 旧键盘打字(20)(20 分) 旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现.现在给出应该输入的一段文字.以及坏掉的那些键,打出的结果文字会是怎样? 输入格式: 输入在2 ...

最新文章

  1. freemodbus线圈中的位操作
  2. 每天一道LeetCode-----回文链表
  3. ES6笔记(1) -- 环境配置支持
  4. PostgreSQL COPY 导入/导出数据
  5. 反质数问题,求不大于n的最大反质数
  6. bmp180气压传感器工作原理_各种传感器工作原理汇总
  7. datagridview 设置选中行_Sublime Text 3最好的功能、插件和设置
  8. Windows科研工具
  9. ico在线制作,网站小图标Favicion.ico在线制作工具软件
  10. 神舟K650c i7(W350STQ)上成功装好Mac OS X 10.9,兼谈如何安装WinXP、7、8.1、OSX、Ubuntu五系统(Chameleon、MBR)
  11. 2005。1。22,闹洞房安排。
  12. 买天猫店网店转让商标过户事项
  13. Shopee通知:未通过实名认证将导致订单无法正常出运
  14. win10笔记本触摸板点击没反应
  15. 初识C语言:多组输入的用法
  16. eclipse报错!!!!
  17. 联想笔记本打开野兽模式
  18. 抖音里王者荣耀游戏视频搞怪的配音怎么做
  19. IEEE Robotics and Automation Letters(RA-L)与ICRA投稿
  20. WPF中System.Windows.Interactivity的使用

热门文章

  1. 为什么说Prometheus是足以取代Zabbix的监控神器?
  2. Jedis对redis的操作详解
  3. 腾讯---生成格雷码
  4. 音视频技术开发周刊 | 234
  5. 深度学习为图片压缩算法赋能:节省55%带宽
  6. ffplay.c学习-2-数据读取线程
  7. Wireshark安装和基本使用
  8. 数据结构与算法之猫狗队列
  9. 把你的 VS Code 打造成 C++ 开发利器
  10. Elasticsearch调优实践