题目来源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