1. 程式人生 > 其它 >1093 字串A+B (20 point(s))

1093 字串A+B (20 point(s))

  • 剛開始沒有看明白題目的條件 “重複的字元必須被剔除” 稍微卡了一下,但是後面看了樣例後就知道這個條件的意思了。實際上沒有看明白的原因是沒有根據題目條件,來理解樣例輸出和輸出。

    所以不能光看題目描述,根據描述來正確理解樣例也是必要的。

  • 參考了下別人,因為無論 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;
}