题目粗心:
给定2个字符串,第一个字符串为输出的字符串,第二个字符串为输入字符串,依据没有输入的字符,输入坏掉的键
算法思路:
咱们能够应用notBroken
记录哪些字符是好的键,在输出s1
和s2
的时候,首先变量s2
,将s2
的字符全副记录为好键,notBroken[s2[i]] = true
,而后遍历s1
,对于在notBroken
中显示s1
的字符不是好键的就进行输入,然而因为只输入一次,所以在输入结束后,就将其记录为好键。
留神点:
1、对于英文字符要转换为大写字母
提交后果:
AC代码:
#include <unordered_map>#include <iostream>using namespace std;int main(){ string s1,s2; cin>>s1>>s2; unordered_map<char,bool> notBroken; for (int i = 0; i < s2.size(); ++i) { // 首先将小写字母转化为大写字母 if(s2[i]>='a'&&s2[i]<='z'){ s2[i] = s2[i] - 32; } notBroken[s2[i]] = true;//s2字符串的字符都是好键 } for (int i = 0; i < s1.size(); ++i) { // 首先将小写字母转化为大写字母 if(s1[i]>='a'&&s1[i]<='z'){ s1[i] = s1[i] - 32; } if(!notBroken[s1[i]]){ printf("%c",s1[i]); } // 示意曾经输入过了 notBroken[s1[i]] = true; } return 0;}