在Python中查找关系列表中的相互关注者的程序
假设我们有一个名为relations的列表。其中relations[i]中的每个元素包含两个数[ai,bi],它表示个人ai在社交媒体平台上关注bi。我们必须找到跟随某人并且他们也关注自己的人的列表,我们必须返回排序后的序列。
因此,如果输入是像relations = [[0, 2],[2, 3],[2, 0],[1, 0]],那么输出将是[0, 2]。
为了解决这个问题,我们将遵循以下步骤:
- ans := 新的set
-
seen := 新的set
-
对于relations中的每个pair a和b,进行以下操作:
- 将pair (a,b)标记为已seen
-
如果(b,a)也被标记为seen,则
- 插入b和a
- 对ans的元素进行排序并返回
示例
让我们看以下实现以获得更好的理解:
def solve(relations):
ans = set()
seen = set()
for a, b in relations:
seen.add((a,b))
if (b, a) in seen:
ans.add(b)
ans.add(a)
k = list(ans)
rtr = sorted(k)
return rtr
relations = [
[0, 2],
[2, 3],
[2, 0],
[1, 0]
]
print(solve(relations))
输入
[[0, 2],[2, 3],[2, 0],[1, 0]]
输出
[0, 2]