मान लीजिए हमारे पास एक कॉन्टैक्ट्स सूची में मेल आईडी हैं। इसलिए प्रत्येक पंक्ति में एक ही व्यक्ति की एक से अधिक मेल आईडी हो सकती हैं। संपर्क i को डुप्लिकेट माना जाता है जब कोई j होता है, जहां j < i ऐसा कि संपर्क j संपर्क i के साथ एक सामान्य ईमेल साझा करता है। इसलिए हमें संपर्कों में अद्वितीय लोगों की संख्या ढूंढनी है।
इसलिए, यदि इनपुट है contacts = [["alex@gmail.com", "alex@yahoo.com"], ["alex_25@yahoo.com", "alex@gmail.com"], ["bob15@gmail.com"]], तो आउटपुट होगा 2, क्योंकि पहला और दूसरा संपर्क समान मेल आईडी साझा कर रहे हैं, इसलिए वे एक ही व्यक्ति हैं, इसलिए दो अद्वितीय लोग हैं।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे:
ans := 0found :=एक नया सेटcontactsमें प्रत्येकcके लिए, करें:duplicate := Falsecमें प्रत्येकemailके लिए, करें:- यदि
emailनहीं मिला है, तो:emailको मिला हुआ चिह्नित करें
- अन्यथा:
duplicate := True
- यदि
- यदि
duplicateगलत है, तो:ans := ans + 1
ansलौटाएं
उदाहरण
बेहतर समझ के लिए निम्नलिखित कार्यान्वयन देखें:
def solve(contacts):
ans = 0
found = set()
for c in contacts:
duplicate = False
for email in c:
if email not in found:
found.add(email)
else:
duplicate = True
if not duplicate:
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