在Python中查找关系列表中的相互关注者的程序

在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]

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程