L1-020 帅到没朋友 (20 分)

帅到没朋友

# include <iostream>
# include <algorithm>
# include <string>
# include <set>
using namespace std;
int main() {
	int num;
	cin >> num;
	string st;
	set<string>s1;
	while (num--) {
		int num1 = 0;
		cin >> num1;
		if (num1 >= 2) {//只需要存有朋友的人即可
			for (int i = 0;i < num1;i++) {
				cin >> st;
				s1.insert(st);
			}
		}
		else {
			cin >> st;
		}
		
	}
	int num2;
	cin >> num2;
	string st1;
	set<string>s2;
	int f = 0;
	while (num2--) {
		cin >> st1;
		//没有找到并且没有重复
		if (s1.find(st1) == s1.end() && s2.find(st1) == s2.end()) {
			s2.insert(st1);
			//必须放入保证其不是重复的,是已经查找过的人,
			//则不会再次输出,这个点不是说set是不存放重复数据这一特性可以控制的,
			//因为这边进入if之后,不会重复放入容器中,但是,会照样输出该值,导致重复输出
			if (f == 1) {
				cout << " ";//控制输出格式
			}
			cout << st1;
			f = 1;
		}
	}

	if (f == 0) {
		cout << "No one is handsome" << endl;
	}
	
}

思路:
由于你所要找的是没有朋友的人,因此,在所给朋友圈中只存下所有有朋友的人,而没有朋友的人不需要存放他,最后查找的时候,当发现所查找的人不存在于我所存放的容器中,则输出此人。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值