Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Python

पायथन 3.x में Counter() का उपयोग करके दो स्ट्रिंग्स को एनाग्राम बनाने के लिए न्यूनतम कैरेक्टर रिमूवल


इस लेख में, हम जानेंगे कि कैसे हम पायथन 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 में एनाग्राम संबंध बनाए रखने के लिए आवश्यक कैरेक्टर्स की संख्या गिनकर दो स्ट्रिंग्स को एक दूसरे का एनाग्राम बनाने का तरीका सीखा।

  1. Python का उपयोग करके दो प्लॉट्स को साथ-साथ कैसे बनाएं? Python का उपयोग करके दो प्लॉट्स को साथ-साथ कैसे बनाएं?

    subplot(row, col, index) मेथड का उपयोग करके, हम एक फिगर को row*col भागों में विभाजित कर सकते हैं, और index पोजीशन पर फिगर प्लॉट कर सकते हैं। निम्नलिखित प्रोग्राम में, हम एक ही फिगर में दो डायग्राम बनाएंगे।चरणNumPy का उपयोग करके x, y1, y2 पॉइंट्स बनाना।nrows = 1, ncols = 2, index = 1 के साथ, subplot(

  1. पायथन प्रोग्राम: दो स्ट्रिंग्स से असामान्य शब्द खोजें पायथन प्रोग्राम: दो स्ट्रिंग्स से असामान्य शब्द खोजें

    इस लेख में हम दी गई समस्या के समाधान के बारे में जानेंगे। समस्या कथन हमें दो स्ट्रिंग्स दी गई हैं, हमें दी गई स्ट्रिंग्स से असामान्य शब्द प्राप्त करने हैं। उदाहरण # असामान्य शब्द def find(A, B): # काउंट count = {} # A में डालें for word in A.split(): count[word] = count.get(w

  1. - Python में regex का उपयोग करके दो स्ट्रिंग्स की तुलना कैसे करें?

    हम दिए गए स्ट्रिंग्स की तुलना निम्न कोड का उपयोग करके कर सकते हैं: उदाहरण import re s1 = Pink Forest s2 = Pink Forrest if bool(re.search(s1, s2)) == True: print(Strings match) else: print(Strings do not match) आउटपुट यह आउटपुट देता है: Strings do not match