Computer >> Máy Tính >  >> Lập trình >> Python

Chương trình tìm số người duy nhất từ ​​danh sách id thư liên hệ bằng Python

Giả sử chúng ta có một danh sách id thư trong danh sách hằng số. Vì vậy, đối với mỗi hàng có thể có nhiều hơn một id thư của cùng một người. Liên hệ với tôi được coi là trùng lặp khi có bất kỳ j, trong đó j

Vì vậy, nếu dữ liệu đầu vào giống như danh bạ =[["alex@gmail.com", "alex@yahoo.com"], ["alex_25@yahoo.com", "alex@gmail.com"], ["bob15 @ gmail.com "]], thì kết quả đầu ra sẽ là 2, vì địa chỉ liên hệ thứ nhất và thứ hai đang chia sẻ cùng id thư, vì vậy họ là cùng một người, do đó, có hai người duy nhất.

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -

  • ans:=0
  • tìm thấy:=một tập hợp mới
  • đối với mỗi c trong danh bạ, hãy thực hiện
    • đờ đẫn:=Sai
    • đối với mỗi email trong c, thực hiện
      • nếu không tìm thấy email, thì
        • đánh dấu email là đã tìm thấy
      • nếu không,
        • đờ đẫn:=True
    • nếu chỉ định là Sai, thì
      • ans:=ans + 1
  • trả lại ans

Ví dụ

Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -

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))

Đầu vào

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

Đầu ra

2