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就是这么一个循环

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

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


如有帮助,请采纳,谢谢