本题要求你计算 ( A - B )。不过麻烦的是,( A ) 和 ( B ) 都是字符串 —— 即从字符串 ( A ) 中把字符串 ( B ) 所包含的字符全删掉,剩下的字符组成的就是字符串 ( A - B )。
输入格式:
输入在 2 行中先后给出字符串 ( A ) 和 ( B )。两字符串的长度都不超过 ( 10^4 ),并且保证每个字符串都是由可见的ASCII码和空白字符组成,最后以换行符结束。
输出格式:
在一行中打印出 ( A - B ) 的结果字符串。
输入样例:
I love GPLT! It's a fun game!
aeiou
输出样例:
I lv GPLT! It's fn gm!
限制条件:
- 代码大小限制: 16 KB
- 时间限制: 400 ms
- 内存限制: 64 MB
- 栈大小限制: 8192 KB
代码
#include<bits/stdc++.h>
#define int long long
using namespace std;
void solve() {
string s1, s2;
getline(cin, s1);
getline(cin, s2);
unordered_set<char> us;
for(char c : s2) us.insert(c);
int len = s1.length();
vector<bool> st(len, 1);
for(int i = 0; i < len; i++) {
if(us.count(s1[i])) st[i] = 0;
}
for(int i = 0; i < len; i++) {
if(st[i]) cout << s1[i];
}
}
signed main() {
ios::sync_with_stdio(0);
cin.tie(0);
solve();
return 0;
}