1084 Broken Keyboard (20 分)
题目大意
旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现。现在给出应该输入的一段文字、以及实际被输入的文字,请你列出肯定坏掉的那些键。
基本思路
枚举字符串s1的每一个字符s1[i]:如果在字符串s2中找不到字符s1[i]并且在字符串ans中找不到字符s1[i](小写字母转换成大写字母),把字符s1[i](小写字母转换成大写字母)连接在字符串ans后面。
输出结果串ans。
代码
#include <iostream>
#include <algorithm>
#include <cstring>
#include <cctype>
using namespace std;
string s1,s2;
string ans;//坏掉的字符构成的字符串(字母字符必须是大写形式)
int main(){
cin>>s1>>s2;
/*枚举字符串s1的每一个字符s1[i]:
如果在字符串s2中找不到字符s1[i]并且在字符串ans中找不到字符s1[i](小写字母转换成大写字母),把字符s1[i](小写字母转换成大写字母)连接在字符串ans后面*/
for(int i=0;i<s1.length();i++){
if(s2.find(s1[i])==string::npos&&ans.find(toupper(s1[i]))==string::npos){
ans+=toupper(s1[i]);
}
}
//输出字符串ans
cout<<ans<<endl;
}