Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python의 연락처 메일 ID 목록에서 고유한 사람 수를 찾는 프로그램

<시간/>

상수 목록에 메일 ID 목록이 있다고 가정합니다. 따라서 각 행에 대해 동일한 사람의 메일 ID가 두 개 이상 있을 수 있습니다. j가 있을 때 연락처 i는 중복된 것으로 간주됩니다. 여기서 j

따라서 입력이 연락처 =[["alex@gmail.com", "alex@yahoo.com"], ["alex_25@yahoo.com", "alex@gmail.com"], ["bob15@ gmail.com"] ], 첫 번째 연락처와 두 번째 연락처가 동일한 메일 ID를 공유하므로 동일한 사람이므로 두 명의 고유한 사람이 있으므로 출력은 2가 됩니다.

이 문제를 해결하기 위해 다음 단계를 따릅니다. −

  • ans :=0
  • 찾음 :=새로운 세트
  • 연락처의 각 c에 대해 다음을 수행합니다.
    • 진한 :=거짓
    • c의 각 이메일에 대해 다음을 수행합니다.
      • 이메일을 찾을 수 없으면
        • 이메일을 찾은 것으로 표시
      • 그렇지 않으면
        • 진한 :=사실
    • dulicate가 False이면
      • ans :=ans + 1
  • 반환

예시

이해를 돕기 위해 다음 구현을 살펴보겠습니다. −

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