解题思路:利用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 人评分
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:783 |
C语言程序设计教程(第三版)课后习题5.4 (C语言代码)浏览:1327 |
回文数字 (C语言代码)浏览:2538 |
Minesweeper (C语言描述,蓝桥杯)浏览:1176 |
简单的a+b (C语言代码)浏览:457 |
C语言程序设计教程(第三版)课后习题10.2 (C语言代码)浏览:755 |
C二级辅导-分段函数 (C语言代码)浏览:659 |
矩形面积交 (C语言代码)浏览:1433 |
敲七 (C++代码)浏览:1119 |
C语言训练-8除不尽的数 (C语言代码)浏览:1469 |