जब दो स्ट्रिंग में समान कैरेक्टर होते हैं लेकिन अलग-अलग क्रम में व्यवस्थित होते हैं तो उन्हें एनाग्राम कहा जाता है। उदाहरण के लिए, spot और post एनाग्राम हैं क्योंकि उनमें समान अक्षर हैं जो अलग-अलग शब्द बनाते हैं। इस लेख में हम देखेंगे कि कैसे जांचें कि दो स्ट्रिंग एक-दूसरे के एनाग्राम हैं या नहीं।
इसके लिए हम Python मॉड्यूल collections का उपयोग करते हैं। इनका उपयोग डेटा के संग्रह को स्टोर करने के लिए किया जाता है, जैसे सूची, डिक्ट, सेट, टुपल आदि। ये बिल्ट-इन संग्रह के उदाहरण हैं। फ़ंक्शन counter() केवल एक संग्रह में किसी तत्व की मौजूदगी की संख्या गिनता है और परिणाम को एक डिक्शनरी के रूप में लौटाता है जो तत्व और उसकी गिनती दिखाता है। इसलिए, यदि दो स्ट्रिंग में उनमें मौजूद प्रत्येक कैरेक्टर की मिलान गिनती है तो हम उन्हें एनाग्राम मानते हैं।
उदाहरण
from collections import Counter StringA = 'top spot' StringB = 'pot post' # तत्वों को डिक्शनरी के रूप में प्रिंट करें print(Counter(StringA)) print(Counter(StringB)) # डिक्शनरी की तुलना करें if Counter(StringA) == Counter(StringB): print('StringA and StringB are Anagrams')आउटपुट
उपरोक्त कोड चलाने पर हमें निम्नलिखित परिणाम मिलता है -
Counter({'p': 2, 't': 2, 'o': 2, 's': 1, ' ': 1}) Counter({'p': 2, 't': 2, 'o': 2, 's': 1, ' ': 1}) StringA and StringB are Anagrams