在Python中查找联系人邮件列表中独特人数的程序
假设我们有一个常量列表中的邮件ID列表。因此,对于每一行,可能有同一人的多个邮件ID。当存在任何j(其中j < i)共享电子邮件的联系人i时,联系人i被视为重复。因此,我们必须找到联系人中独特的人数。
因此,如果输入如下contacts = [["alex@gmail.com", "alex@yahoo.com"], ["alex_25@yahoo.com", "alex@gmail.com"], ["bob15@gmail.com"] ]
,则输出将为2,因为第一个和第二个联系人共享相同的电子邮件,因此他们是同一个人,因此有两个独特的人。
解决此问题,我们将按照以下步骤执行-
- ans := 0
- found := a new set
- 对于每个c中的元素,执行以下操作-
- dullicate := False
- 对于每个电子邮件email中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