用 Python 编写的程序,从联系人邮件 ID 列表中查找唯一人员的数量

pythonserver side programmingprogramming更新于 2026/1/5 17:48:17

假设我们在一个常量列表中有一个邮件 ID 列表。因此,每行可能存在同一个人的多个邮件 ID。当存在任何 j 时,联系人 i 被视为重复,其中 j < i,使得联系人 j 与 i 共享一个共同的电子邮件。因此,我们必须找到联系人中唯一人员的数量。

因此,如果输入为 contacts = [["alex@gmail.com", "alex@yahoo.com"], ["alex_25@yahoo.com", "alex@gmail.com"], ["bob15@gmail.com"] ],则输出将为 2,因为第一个和第二个联系人共享相同的邮件 ID,因此他们是同一个人,所以有两个唯一的人。

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

  • ans := 0
  • found := a new set
  • 对于 contacts 中的每个 c,执行
    • dullicate := False
    • 对于 c 中的每个电子邮件,执行
      • 如果未找到电子邮件,则
        • 将电子邮件标记为已找到
      • 否则,
        • dullicate := True
    • 如果 dullicate 为 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

相关文章


有用资源