題目來源java
給定兩個字符串 A 和 B,本題要求你輸出 A+B,即兩個字符串的並集。要求先輸出 A,再輸出 B,但重複的字符必須被剔除。ios
輸入在兩行中分別給出 A 和 B,均爲長度不超過 106的、由可見 ASCII 字符 (即碼值爲32~126)和空格組成的、由回車標識結束的非空字符串。數組
在一行中輸出題面要求的 A 和 B 的和。spa
This is a sample test to show you_How it works
This ampletowyu_Hrk
給兩個字符串,把它們合併起來code
依次輸出字符串的每一個字符,輸出過的字符就不輸出了ci
若是map/數組中有這個字符,就不輸出了字符串
注意:get
cin
接收
getline(cin, str)
能夠接收空格使用數組string
#include <iostream> #include <string> using namespace std; int main() { int m[200] = { 0 }; string A, B; getline(cin, A); getline(cin, B); string s = A + B; for (int i = 0; i < s.size(); ++i) { if (m[s[i]] != 1) { m[s[i]] = 1; cout << s[i]; } } return 0; }
使用unordered_map<char, int>
it
#include <iostream> #include <unordered_map> #include <string> using namespace std; int main() { string A, B; getline(cin, A); getline(cin, B); A = A + B; unordered_map<char, int> m; for (int i = 0; i < A.size(); ++i) { if (m[A[i]] != 1) { m[A[i]] = 1; cout << A[i]; } } return 0; }
// TODO