इस लेख में, हम जानेंगे कि कैसे हम पायथन 3.x या उससे पहले के संस्करण में counter() फंक्शन का उपयोग करके एक स्ट्रिंग को पैंग्राम में बना सकते हैं। ऐसा करने के लिए हमें इनपुट स्ट्रिंग से किसी भी कैरेक्टर को हटाने की अनुमति है। हम ऐसे आवश्यक कैरेक्टर्स की संख्या भी ज्ञात करेंगे जिन्हें स्ट्रिंग को एनाग्राम बनाने के लिए हटाने की आवश्यकता है।
दो स्ट्रिंग्स को एक दूसरे का एनाग्राम कहा जाता है जब वे किसी भी रैंडम क्रम में समान प्रकार के अल्फाबेट्स रखते हैं।
Counter() मेथड पायथन में उपलब्ध कलेक्शन मॉड्यूल में मौजूद है। पूर्वापेक्षा counter() फंक्शन का उपयोग करने के लिए कलेक्शन मॉड्यूल को इम्पोर्ट करना है।
एल्गोरिदम
1. Counter(inp_str) का उपयोग करके इनपुट स्ट्रिंग को डिक्शनरी टाइप में परिवर्तित करना जिसमें कैरेक्टर्स कुंजी के रूप में और उनकी आवृत्ति मान के रूप में हो, जो कलेक्शन मॉड्यूल में उपलब्ध है।
2. दोनों डिक्शनरी में कुंजियों की कुल संख्या गिनना और इनपुट स्ट्रिंग्स से परिवर्तित दोनों डिक्शनरी में सामान्य कुंजियों की संख्या गिनना।
3. यदि कोई सामान्य कुंजी नहीं मिलती है तो इसका मतलब है कि दोनों इनपुट स्ट्रिंग्स से (दोनों डिक्शनरी की लंबाई का योग) कैरेक्टर्स को हटाने की आवश्यकता है।
4. अन्यथा (max(दोनों डिक्शनरी की लंबाई) - उपलब्ध सामान्य कुंजियों की संख्या) हटाए जाने वाले कैरेक्टर्स की आवश्यक संख्या देगा।
collections.Counter एक डिक्शनरी सबक्लास है जो इंटरप्रेटर द्वारा अक्षरों की स्वचालित गिनती सुनिश्चित करता है। हमें वास्तव में सबस्ट्रिंग्स बनाने या मैन्युअली जांचने की आवश्यकता नहीं है कि वे एनाग्राम हैं या नहीं।
उदाहरण
# दो स्ट्रिंग्स एनाग्राम बनें
from collections import Counter
def convertAnagram(str_1, str_2):
# स्ट्रिंग्स को डिक्शनरी टाइप में परिवर्तित करना
dict_1 = Counter(str_1)
dict_2 = Counter(str_2)
keys_1 = dict_1.keys()
keys_2 = dict_2.keys()
# दोनों कुंजियों की सूची में कुंजियों की संख्या गिनना
count_1 = len(keys_1)
count_2 = len(keys_2)
# कुंजियों के जोड़े को सेट में परिवर्तित करके सामान्य कुंजियों को ढूंढना
set_1 = set(keys_1)
commonKeys = len(set_1.intersection(keys_2))
if (commonKeys == 0):
# कोई सामान्य चीज नहीं मिली यानी सभी अलग हैं
return (count_1 + count_2)
else:
# इनपुट में कुछ तत्व पहले से मेल खा रहे हैं
return (max(count_1, count_2) - commonKeys)
str_1 = 'Tutorials'
str_2 = 'sTutalori'
str_3 = 'Point'
print(convertAnagram(str_1, str_2))
print(convertAnagram(str_3, str_2))
आउटपुट
0
6
निष्कर्ष
इस लेख में, हमने पायथन 2.x में एनाग्राम संबंध बनाए रखने के लिए आवश्यक कैरेक्टर्स की संख्या गिनकर दो स्ट्रिंग्स को एक दूसरे का एनाग्राम बनाने का तरीका सीखा।