B1033 旧键盘打字 (20分)

坏键问题

1. 原文

旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现。现在给出应该输入的一段文字、以及坏掉的那些键,打出的结果文字会是怎样?

输入格式:

输入在 2 行中分别给出坏掉的那些键、以及应该输入的文字。其中对应英文字母的坏键以大写给出;每段文字是不超过 105 个字符的串。可用的字符包括字母 [a-z, A-Z]、数字 0-9、以及下划线 _(代表空格)、,.-+(代表上档键)。题目保证第 2 行输入的文字串非空。

注意:如果上档键坏掉了,那么大写的英文字母无法被打出。

输出格式:

在一行中输出能够被打出的结果文字。如果没有一个字符能被打出,则输出空行。

输入样例:

1
2
7+IE.
7_This_is_a_test.

输出样例:

1
_hs_s_a_tst

2. 解析思路

坏键以大写字母表示,所以应该比较toupper()下的字符

当存在+时,当没有大写字母时,键不算坏

3. AC代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include<iostream>
#include<string>
#include<cctype>
using namespace std;
int main(){
string a,b,ans;
getline(cin,a);
cin>>b;
for (int i = 0; i < b.length(); ++i)
{
if (a.find(toupper(b[i]))==string::npos&&
(a.find('+')==string::npos||!isupper(b[i])))
{
cout<<b[i];
}
}
return 0;
}
本文结束  感谢您的阅读
  • 本文作者: Wang Ting
  • 本文链接: /zh-CN/2019/09/07/B1033/
  • 发布时间: 2019-09-07 15:45
  • 更新时间: 2021-10-29 14:16
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!