weixin_53488249 2022-04-13 20:26 采纳率: 100%
浏览 21
已结题

python中怎么用字典,查找环的个数呀? 需要转换为列表吗?

描述
如果有这么三个人a,b,c,并且a爱上b,b爱上c,c爱上a这样一个循环,那么我们就把这种包含三个人的循环定义为“奇怪的循环”。我们给出一群人的爱慕关系,目标是找出这些爱慕关系中有多少这种狗血的“奇怪的循环”。

输入
输入共包括n+1行,第一行为正整数n,下面紧跟n行;
每行包括两个名字A,B并用空格隔开,表示A爱上了B
(输入数据保证一个人只爱另外一个人,不存在一个人爱多个人的情况)

输出
输出一个整数,共包含多少个“奇怪的循环”。

样例输入
4
Alice Bob
Bob Carol
Carol Alice
Syf None
样例输出
1
提示
样例中Alice,Bob,Carol就是这么一个循环

  • 写回答

1条回答 默认 最新

  • 溪风沐雪 2022-04-13 21:47
    关注

    给个简单的例子,用简单字母测试结果:

    relations = {}
    n = int(input("请输入一个数字n:"))
    for i in range(n):
        names = input(f'请输入第{i+1}组名字:')
        name_arr = [name for name in names.split(' ')]
        relations[name_arr[0]] = name_arr[1]
    count = 0
    for key in relations:
        name1 = key
        name2 = relations[key]
        if name2 in relations.keys():
            name3 = relations[name2]
            if name3 in relations.keys() and relations[name3]==name1:
                count += 1
    print(count//3) #同一组关系会被统计3次,所以除3
    
    

    img


    如有帮助,请采纳,谢谢

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
    1人已打赏

报告相同问题?

问题事件

  • 系统已结题 4月21日
  • 已采纳回答 4月13日
  • 创建了问题 4月13日

悬赏问题

  • ¥15 在获取boss直聘的聊天的时候只能获取到前40条聊天数据
  • ¥20 关于URL获取的参数,无法执行二选一查询
  • ¥15 液位控制,当液位超过高限时常开触点59闭合,直到液位低于低限时,断开
  • ¥15 marlin编译错误,如何解决?
  • ¥15 有偿四位数,节约算法和扫描算法
  • ¥15 VUE项目怎么运行,系统打不开
  • ¥50 pointpillars等目标检测算法怎么融合注意力机制
  • ¥20 Vs code Mac系统 PHP Debug调试环境配置
  • ¥60 大一项目课,微信小程序
  • ¥15 求视频摘要youtube和ovp数据集