Python程式:從聯絡人郵件列表中查詢唯一人數


假設我們在常量列表中有一系列郵件ID。因此,每一行可能存在多個同一人。當存在任何j (j < i) 且聯絡人j與i共享同一個郵件時,聯絡人i被認為是重複的。所以我們必須找到聯絡人中唯一的人數。

例如,如果輸入是 contacts = [["alex@gmail.com", "alex@yahoo.com"], ["alex_25@yahoo.com", "alex@gmail.com"], ["bob15@gmail.com"] ],則輸出為2,因為第一個和第二個聯絡人共享相同的郵件ID,所以他們是同一人,因此只有兩個人。

為了解決這個問題,我們將遵循以下步驟:

  • ans := 0
  • found := 一個新的集合
  • 對於 contacts 中的每個 c:
    • duplicate := False
    • 對於 c 中的每個 email:
      • 如果 email 不在 found 中,則:
        • 將 email 標記為已找到
      • 否則:
        • duplicate := True
    • 如果 duplicate 為 False,則:
      • ans := ans + 1
  • 返回 ans

示例

讓我們看看下面的實現,以便更好地理解:

def solve(contacts):
   ans = 0
   found = set()

   for c in contacts:
      dullicate = False

      for email in c:
         if email not in found:
            found.add(email)
         else:
            dullicate = True
      if not dullicate:
         ans += 1

   return ans

contacts = [
["alex@gmail.com", "alex@yahoo.com"],
["alex_25@yahoo.com", "alex@gmail.com"],
["bob15@gmail.com"]
]
print(solve(contacts))

輸入

[["alex@gmail.com", "alex@yahoo.com"],
["alex_25@yahoo.com", "alex@gmail.com"],
["bob15@gmail.com"]
]

輸出

2

更新於:2021年10月14日

瀏覽量:175

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.