利用哈希表记录每一个字符是否应该消除,然后根据记录打印输出即可
#include<bits/stdc++.h>
using namespace std;
//分别记录两个字符串
string s1;
string s2;
map<char, int> mymap;
int main() {
//注意对一行数据的读取,应该使用getline 防止空格造成不必要的影响
getline(cin, s1);
getline(cin, s2);
map<char, int>::iterator iter;
for (int i = 0; i < s1.size(); i++) {
mymap.emplace(s1[i], 1);
}
for (int i = 0; i < s2.size(); i++) {
iter = mymap.find(s2[i]);
while (iter != mymap.end()&&iter->second!=0) {
iter->second = 0;
iter = mymap.find(s2[i]);
}
}
for (int i = 0; i < s1.size(); i++) {
iter = mymap.find(s1[i]);
if (iter->second != 0) {
cout << s1[i];
}
}
return 0;
}
考点: 哈希、字符串