1093 字符串A+B (20 分)
给定两个字符串 A 和 B,本题要求你输出 A+B,即两个字符串的并集。要求先输出 A,再输出 B,但重复的字符必须被剔除。
输入格式:
输入在两行中分别给出 A 和 B,均为长度不超过 10
6
的、由可见 ASCII 字符 (即码值为32~126)和空格组成的、由回车标识结束的非空字符串。
输出格式:
在一行中输出题面要求的 A 和 B 的和。
输入样例:
This is a sample test
to show you_How it works
输出样例
This ampletowyu_Hrk
难点
这题好像没有难点,主要就是一个查重,就建立一个标记数组就行
代码
#include <iostream>
#include <cstring>
#include <cstdio>
#include <cstdlib>
using namespace std;
/**
* 简单一个标记数组实现查重
*/
int main(int argc, const char * argv[]) {
int flag[127],length;
memset(flag, 0, sizeof(flag));
string A, B;
getline(cin, A);
getline(cin, B);
length = A.length();
for(int i = 0; i < length; i++){
if(flag[A[i]] == 0){
flag[A[i]] += 1;
cout<<A[i];
}
}
length = B.length();
for(int i = 0; i < length; i++){
if(flag[B[i]] == 0){
flag[B[i]] += 1;
cout<<B[i];
}
}
return 0;
}