题目粗心:

给定2个字符串,第一个字符串为输出的字符串,第二个字符串为输入字符串,依据没有输入的字符,输入坏掉的键

算法思路:

咱们能够应用notBroken记录哪些字符是好的键,在输出s1s2的时候,首先变量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;}