解题思路:利用STL unordered_set保存集合A和C, list保存集合B, 判断集合B中也在A中但不在C中的元素。
注意事项:题意要求按B输入顺序输出,所以需要用有序列表保存B中的元素。
参考代码:
#include<iostream> #include<string> #include<unordered_set> #include<list> using namespace std; int main() { int A, B, C; while (cin >> A >> B >> C) { string s; unordered_set<string> a; while (A--) { cin >> s; a.insert(s); } list<string> b; while (B--) { cin >> s; b.push_back(s); } unordered_set<string> c; while (C--) { cin >> s; c.insert(s); } bool spy = false; for (string s : b) { if (a.find(s) != a.end() && c.find(s) == c.end()) { cout << s << ' '; spy = true; } } if (!spy) cout << "No enemy spy"; cout << '\n'; } return 0; }
0.0分
0 人评分
WU-链表数据求和操作 (C++代码)浏览:1316 |
C语言程序设计教程(第三版)课后习题6.3 (C语言代码)from DQM浏览:671 |
1054题解浏览:467 |
C语言程序设计教程(第三版)课后习题3.7 (C语言代码)浏览:707 |
永远的丰碑 (C语言代码)浏览:525 |
C语言训练-8除不尽的数 (C语言代码)浏览:1402 |
矩阵转置 (C语言代码)浏览:783 |
上车人数 (C语言代码)浏览:713 |
C语言程序设计教程(第三版)课后习题11.5 (C语言代码)浏览:999 |
简单的a+b (C语言代码)浏览:504 |