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

啟動你的職業生涯

完成課程獲得認證

開始學習
廣告