Python 中根据关系列表查找共同关注者程序


假设我们有一个名为 relations 的列表。relations 列表中的每个元素 relations[i] 包含两个数字 [ai, bi],表示用户 ai 在社交媒体平台上关注用户 bi。我们需要找到一个列表,其中包含互相关注的用户,并按排序顺序返回。

例如,如果输入是 relations = [[0, 2],[2, 3],[2, 0],[1, 0]],则输出为 [0, 2]。

为了解决这个问题,我们将遵循以下步骤:

  • ans := 一个新的集合

  • seen := 一个新的集合

  • 对于 relations 中的每一对 a 和 b,执行以下操作:

    • 将 (a, b) 对标记为已查看

    • 如果 (b, a) 也被标记为已查看,则:

      • 将 b 和 a 插入 ans 中

  • 对 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]

更新于:2021年10月12日

浏览量:169

启动你的职业生涯

完成课程获得认证

开始学习
广告