Contents
  1. 1. 输入格式:
  2. 2. 输出格式:
  3. 3. 输入样例:
  4. 4. 输出样例:
  5. 5. 分析:
  6. 6. 代码:

给定两个字符串 A 和 B,本题要求你输出 A+B,即两个字符串的并集。要求先输出 A,再输出 B,但重复的字符必须被剔除

输入格式:

输入在两行中分别给出 A 和 B,均为长度不超过 106的、由可见 ASCII 字符 (即码值为32~126)和空格组成的、由回车标识结束的非空字符串。

输出格式:

在一行中输出题面要求的 A 和 B 的和。

输入样例:

This is a sample test
to show you_How it works

输出样例:

This ampletowyu_Hrk

分析:

本题考查map的使用。用getline(cin,s)输入整行,对输入的两个字符串进行遍历,先记录该字符出现次数再判断。如果MAP中该字符只出现了一次则输出该字符。

代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include<iostream>
#include<map>
#include<vector>
using namespace std;
int main(){
string a,b;
map<char,int> MAP;
getline(cin,a);
getline(cin,b);
for (int i=0;i<a.size();i++){
MAP[a[i]]++;
if (MAP[a[i]] == 1) cout << a[i];
}
for (int i=0;i<b.size();i++){
MAP[b[i]]++;
if (MAP[b[i]] == 1) cout << b[i];
}
return 0;
}
Contents
  1. 1. 输入格式:
  2. 2. 输出格式:
  3. 3. 输入样例:
  4. 4. 输出样例:
  5. 5. 分析:
  6. 6. 代码: