1033. 旧键盘打字(20)
来源:互联网 发布:风月知相思 在线阅读 编辑:程序博客网 时间:2024/05/22 17:43
题目链接
题目:
旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现。现在给出应该输入的一段文字、以及坏掉的那些键,打出的结果文字会是怎样?
输入格式:
输入在2行中分别给出坏掉的那些键、以及应该输入的文字。其中对应英文字母的坏键以大写给出;每段文字是不超过105个字符的串。可用的字符包括字母[a-z, A-Z]、数字0-9、以及下划线“_”(代表空格)、“,”、“.”、“-”、“+”(代表上档键)。题目保证第2行输入的文字串非空。
注意:如果上档键坏掉了,那么大写的英文字母无法被打出。
输出格式:
在一行中输出能够被打出的结果文字。如果没有一个字符能被打出,则输出空行。
输入样例:7+IE.7_This_is_a_test.输出样例:
_hs_s_a_tst
题解:
简单的字符串处理。这道题比较坑的地方是,第一行有可能是空的,用cin读入的话会把空行(\n \t以及空格)跳过,所以这里用了cin.getline
代码:
#include <iostream>#include <string.h>using namespace std;const int MAXN = 100000 + 5;char bad[MAXN], s[MAXN];int mark[256], flag = 0;int main(){//freopen("a.txt", "r", stdin);cin.getline(bad, MAXN);cin.getline(s, MAXN);//cin >> bad >> s;memset(mark, 0, 256 * sizeof(int));int L1 = strlen(bad);int L2 = strlen(s);for (int i = 0; i < L1; i++)//将坏键都做好标记{mark[bad[i]] = 1;if (bad[i] >= 'A' && bad[i] <= 'Z')mark[bad[i] - 'A' + 'a'] = 1;if (bad[i] == '+')flag = 1;}for (int i = 0; i < L2; i++)//扫描字符串,坏键不做输出,若+也坏掉,大写字母也不输出{if ((s[i] >= 'A' && s[i] <= 'Z') && flag)continue;if (mark[s[i]] == 0){cout << s[i];}}cout << endl;return 0;}
阅读全文
0 0
- 1033. 旧键盘打字(20)
- 1033. 旧键盘打字(20)
- 1033. 旧键盘打字(20)
- 1033. 旧键盘打字(20)
- 1033. 旧键盘打字(20)
- 1033. 旧键盘打字(20)
- 1033. 旧键盘打字(20)
- 1033. 旧键盘打字(20)
- 1033. 旧键盘打字(20)
- 1033. 旧键盘打字(20)
- 1033. 旧键盘打字(20)
- 1033. 旧键盘打字(20)
- 1033. 旧键盘打字(20)
- 1033. 旧键盘打字(20)
- 1033. 旧键盘打字(20)
- 1033. 旧键盘打字(20)
- 1033. 旧键盘打字(20)
- 1033. 旧键盘打字(20)
- String和StringBuffer
- winform界面显示不全
- VS下Python的安装使用及配置
- sqli-labs学习记录(一)
- 为什么要使用Homebrew
- 1033. 旧键盘打字(20)
- OpenCV-Python——图像处理
- 面向对象编程语言 Python
- 理解es6中的暂时性死区
- 软引用,弱引用的区别
- 【增强版】《Java面试笔试题全面含答案中篇》涉及java/数据库/框架/系统/设计模式相关-中篇
- linux学习---shell编程
- java+python
- centos7安装jdk8