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

पायथन का उपयोग करके जांचें कि एक स्ट्रिंग स्वैप से स्ट्रिंग्स समान हो सकती हैं या नहीं


मान लीजिए हमारे पास समान लंबाई के दो स्ट्रिंग्स s और t हैं। एक ऑपरेशन पर विचार करें जहां हम एक स्ट्रिंग में दो इंडेक्स चुनते हैं (जरूरी नहीं कि अलग हों) और चयनित इंडेक्स पर वर्णों को स्वैप करते हैं। हमें जांचना है कि क्या दोनों स्ट्रिंग्स को ठीक एक स्ट्रिंग पर अधिकतम एक स्ट्रिंग स्वैप करके समान बनाना संभव है या नहीं।

उदाहरण के लिए, यदि इनपुट s = "hello" t = "hlelo" है, तो आउटपुट True होगा क्योंकि हमें s या t में 'e' और 'l' को स्वैप करके उन्हें समान बनाने की आवश्यकता है।

हल करने के चरण

  • max_diffs := 2

  • diffs := 0

  • st := एक नया सेट

  • st2 := एक नया सेट

  • i को 0 से s के आकार तक की रेंज में लिए करें

    • यदि s[i], t[i] के समान नहीं है, तो

      • diffs := diffs + 1

    • यदि s[i], st में मौजूद नहीं है, तो

      • s[i] को st में डालें

    • यदि t[i], st2 में मौजूद नहीं है, तो

      • t[i] को st2 में डालें

    • यदि diffs > max_diffs, तो

      • False वापस करें

  • यदि (diffs, 0 के समान है या diffs, 2 के समान है) और st का आकार st2 के आकार के समान है और st, st2 के समान है, तो true वापस करें, अन्यथा false

उदाहरण

def solve(s, t):
    max_diffs = 2
    diffs = 0
    st = set()
    st2 = set()
    for i in range(len(s)):
        if s[i] != t[i]:
            diffs += 1
        if s[i] not in st:
            st.add(s[i])
        if t[i] not in st2:
            st2.add(t[i])
        if diffs > max_diffs:
            return False
    return (diffs == 0 or diffs == 2) and len(st) == len(st2) and st == st2

s = "hello"
t = "hlelo"
print(solve(s, t))

इनपुट

"hello", "hlelo"

आउटपुट

True
  1. - पायथन में जांचें कि क्या एक स्ट्रिंग को दूसरी स्ट्रिंग में 1-टू-1 मैप किया जा सकता है

    मान लीजिए हमारे पास दो लोअरकेस स्ट्रिंग्स s और t हैं, हमें जांचना है कि क्या हम s के प्रत्येक अक्षर के लिए दूसरे अक्षर (शायद वही अक्षर) में 1-टू-1 मैपिंग बना सकते हैं ताकि s को t में मैप किया जा सके। (वर्णों का क्रम नहीं बदलेगा)। उदाहरण के लिए, यदि इनपुट है s = papa, t = lili, तो आउटपुट होगा True,

  1. - पायथन प्रोग्राम: चेक करना कि दी गई स्ट्रिंग हेटेरोग्राम है या नहीं

    यहां एक स्ट्रिंग दी गई है फिर हमारा कार्य चेक करना है कि दी गई स्ट्रिंग हेटेरोग्राम है या नहीं।हेटेरोग्राम चेक करने का अर्थ है कि एक शब्द, वाक्यांश, या वाक्य जिसमें अल्फाबेट का कोई भी अक्षर एक से अधिक बार नहीं आता। हेटेरोग्राम को पैंग्राम से अलग किया जा सकता है जो अल्फाबेट के सभी अक्षरों का उपयोग कर

  1. - Python का उपयोग करके स्ट्रिंग पैलिंड्रोम है या नहीं जांचें

    Python में पैलिंड्रोम स्ट्रिंग जांचना Python के मानक पुस्तकालय से reveresed() फ़ंक्शन का उपयोग करें। यह उल्टा ऑब्जेक्ट लौटाता है जिसे सूची ऑब्जेक्ट में बदला जा सकता है। >>> str1 = malayalam >>> l1 = list(reversed(str1)) >>> l1 [m, a, l, a, y, a, l, a, m] join() मेथड का उ