给定两个字符串 S1 和 S2,S=S1−S2 定义为将 S1 中包含的所有在 S2 中出现过的字符删除后得到的字符串。
你的任务就是计算 S1−S2。
输入格式
共两行,第一行包含字符串 S1,第二行包含字符串 S2。输出格式
输出共一行,表示 S1−S2 的结果。数据范围
两个给定字符串的长度都不超过 104。输入样例:
They are students.
aeiou
输出样例:
Thy r stdnts.
我的解法:
#include<bits/stdc++.h>
using namespace std;
int main(){
string s1,s2,res;
getline(cin, s1);
getline(cin, s2);
unordered_set<char> hash;
for(auto c:s2) hash.insert(c);
for(auto c:s1)
if(!hash.count(c)) res+=c;
cout<<res;
return 0;
}
收获:
哈希表的灵活使用,insert()与count()函数