मान लीजिए हमारे पास शब्दों की एक सूची है। ये शब्द कई बार आ सकते हैं। हमें इन शब्दों की आवृत्तियां दिखानी हैं और गिनना है कि कितने विशिष्ट शब्द हैं।
उदाहरण के लिए, यदि इनपुट words = ["Book", "Sound", "Language", "Computer", "Book", "Language"] है, तो आउटपुट (4, '2 1 2 1') होगा क्योंकि चार विशिष्ट शब्द हैं, पहला और तीसरा शब्द दो बार आए हैं।
समाधान दृष्टिकोण
इसे हल करने के लिए हम निम्न चरणों का पालन करेंगे:
- d := एक OrderedDict जो इंसर्शन ऑर्डर के आधार पर आइटम संग्रहीत करता है
- words में प्रत्येक w के लिए, करें
- यदि w, d में है, तो
- d[w] := d[w] + 1
- अन्यथा,
- d[w] := 1
- यदि w, d में है, तो
- d में सभी कुंजियों की सूची का आकार और d से सभी मानों को स्ट्रिंग में जोड़कर एक जोड़ी लौटाएं
उदाहरण
बेहतर समझ के लिए निम्न कार्यान्वयन देखें:
from collections import OrderedDict
def solve(words):
d = OrderedDict()
for w in words:
if w in d:
d[w] += 1
else:
d[w] = 1
return len(d.keys()), ' '.join([str(d[k]) for k in d.keys()])
words = ["Book", "Sound", "Language", "Computer", "Book", "Language"]
print(solve(words))इनपुट
["Book", "Sound", "Language", "Computer", "Book", "Language"]
आउटपुट
(4, '2 1 2 1')