एक स्ट्रिंग दी गई है। हमारा कार्य उन कैरेक्टर्स को ढूंढना है जिनकी फ्रीक्वेंसी दी गई स्ट्रिंग में एक से अधिक है।
उदाहरण के लिए, हम देख सकते हैं कि स्ट्रिंग "Hello World. Let's learn Python" है तो एल्गोरिदम उन अक्षरों को ढूंढेगा जो कई बार आ रहे हैं। इस मामले में, आउटपुट इस तरह दिखेगा:
e: 3 l: 4 o: 3 (space): 4 r: 2 t: 2 n: 2
इस समस्या को लागू करने के लिए हम पायथन Collections का उपयोग कर रहे हैं। कलेक्शन से हम Counter() मेथड प्राप्त कर सकते हैं। Counter() मेथड हैशटेबल ऑब्जेक्ट्स को गिनने के लिए उपयोग किया जाता है। इस मामले में, यह टेक्स्ट से कैरेक्टर्स को अलग करता है और प्रत्येक कैरेक्टर को डिक्शनरी की की बनाता है, और कैरेक्टर काउंट उन कीज़ की वैल्यू होती है।
एल्गोरिदम
चरण 1: स्ट्रिंग से की-वैल्यू पेयर ढूंढें, जहां प्रत्येक कैरेक्टर की है और कैरेक्टर काउंट्स वैल्यूज़ हैं। चरण 2: प्रत्येक की के लिए, चेक करें कि वैल्यू एक से अधिक है या नहीं। चरण 3: यदि यह एक से अधिक है तो, यह डुप्लिकेट है, इसलिए इसे मार्क करें। अन्यथा, कैरेक्टर को इग्नोर करें।
उदाहरण कोड
from collections import Counter
def calc_char_freq(string):
freq_count = Counter(string) # लेटर्स को की और फ्रीक्वेंसी को वैल्यू के साथ डिक्शनरी प्राप्त करें
for key in freq_count.keys():
if freq_count.get(key) > 1: # सभी अलग-अलग कीज़ के लिए, लेटर्स और फ्रीक्वेंसी लिस्ट करें
print("(" + key + ", " + str(freq_count.get(key)) + ")")
myStr = 'Hello World. Let\'s learn Python'
calc_char_freq(myStr)आउटपुट
(e, 3) (l, 4) (o, 3) ( , 4) (r, 2) (t, 2) (n, 2)