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;
}
上一篇:P1605 迷宫(dfs,洛谷,java)


下一篇:迷宫[洛谷 P1605]|题解