1093 字串A+B (20 point(s))
阿新 • • 發佈:2021-09-22
-
剛開始沒有看明白題目的條件 “重複的字元必須被剔除” 稍微卡了一下,但是後面看了樣例後就知道這個條件的意思了。實際上沒有看明白的原因是沒有根據題目條件,來理解樣例輸出和輸出。
所以不能光看題目描述,根據描述來正確理解樣例也是必要的。
-
參考了下別人,因為無論 A 還是 B 字串,重複出現的字串最終都是不會輸出的。所以可以把 A B 拼起來,然後整個一起判斷沒輸出的字元輸出即可。
#include <bits/stdc++.h> using namespace std; int main() { string A, B; map<char, int> vis; getline(cin, A); getline(cin, B); A += B; for(auto a: A) if(vis[a]++ == 0) cout << a; }
#include <bits/stdc++.h>
using namespace std;
int main() {
string A, B;
map<char, int> vis;
getline(cin, A);
getline(cin, B);
for(auto a: A) if(vis[a]++ == 0) cout << a;
for(auto b: B) if(vis[b]++ == 0) cout << b;
}