set

कल्पना कीजिए कि आपके पास दुनिया भर के विभिन्न शहरों से कई ग्राहक हैं। आप उनके शहरों का रिकॉर्ड रखते हैं और उन शहरों की एक सूची बनाते हैं जहाँ से आपके ग्राहक आते हैं। वह सूची कुछ ऐसी हो सकती है: ['San Francisco', 'New York', 'Yerevan', 'New York', 'Tel Aviv', ...]
आपने देखा है कि कुछ ग्राहक New York जैसे ही शहर से हैं। आप जानना चाहते हैं कि आपके ग्राहकों के आने वाले अनोखे शहर कौन-कौन से हैं।
Python में set का उपयोग करके यह करना आसान है:
cities = ['San Francisco', 'New York', 'Yerevan', 'New York', 'Tel Aviv', 
          'San Diego', 'San Francisco', 'Yerevan']
uniques = set(cities)
print(uniques)
# {'San Diego', 'Yerevan', 'San Francisco', 'New York', 'Tel Aviv'}

print(len(cities))     # 8
print(len(uniques))    # 5
set एक अव्यवस्थित संग्रह है जिसमें कोई दोहराव वाले तत्व नहीं होते। यह अनोखे तत्वों को ट्रैक करने में मदद करता है और इनमें किसी विशेष क्रम की आवश्यकता नहीं होती। यह एक सूची या ट्यूपल की तरह तत्वों का संग्रह है लेकिन बिना क्रम के और तत्वों की विशिष्टता की गारंटी के साथ।
 
हम in ऑपरेटर का उपयोग करके जांच सकते हैं कि कोई आइटम सेट में है या नहीं:
print('San Francisco' in uniques)   # True
print('Tel Aviv' in uniques)        # True
print('London' in uniques)          # False
print('Amsterdam' in uniques)       # False
print(3 in uniques)                 # False
किसी विशेष तत्व के set में मौजूद होने की जांच करना list में जांचने की तुलना में कहीं तेज़ है। यह set की डेटा संरचना की प्रकृति के कारण है। सूचियों में, Python को तत्वों को एक-एक करके शुरुआत से अंत तक तुलना करनी पड़ती है और यदि वह तत्व मौजूद है तो True लौटाता है, अन्यथा False। तो, यह जांच के लिए पूरी सूची को एक-एक करके पार करता है। इसके विपरीत, सेट की संरचना इस जांच को बहुत कम ऑपरेशनों के साथ करने की अनुमति देती है।

चुनौती

आप एक किराने की दुकान को उसकी इन्वेंटरी प्रबंधन में मदद कर रहे हैं। प्रत्येक उत्पाद के लिए, उन्होंने उस कंपनी का नाम लिखा है जो वह उत्पाद आपूर्ति करती है। वे उन कंपनियों को एक संदेश भेजना चाहते हैं जिसमें उन्हें बताना है कि आने वाले महीने में उन्हें उनके माल की कितनी आवश्यकता होगी। लेकिन कुछ कंपनियाँ कई उत्पादों की आपूर्ति करती हैं, इसलिए स्टोर एक ही कंपनी को कई संदेश नहीं भेजना चाहता। इसके बजाय, वे उन कंपनियों की सूची प्राप्त करना चाहते हैं जिनके साथ वे काम करते हैं ताकि वे बाद में उन्हें संदेश भेज सकें। वे आपसे एक प्रोग्राम लिखने का अनुरोध करते हैं जो उन सभी कंपनियों के नाम प्रिंट करे जिनके साथ वे साझेदारी करते हैं।
इनपुट की पहली पंक्ति में एक एकल पूर्णांक n है - उत्पादों की संख्या। अगली n पंक्तियों में प्रत्येक उत्पाद के लिए कंपनी का नाम दिया गया है।
प्रोग्राम को स्टोर के साझेदार कंपनियों के अनोखे नामों को प्रत्येक को एक अलग पंक्ति में आउटपुट करना चाहिए।
इनपुट
आउटपुट
5 Nestle Mars Nestle Coca Cola Nestle
Nestle Mars Coca Cola

Constraints

Time limit: 2 seconds

Memory limit: 512 MB

Output limit: 1 MB

To check your solution you need to sign in
Sign in to continue