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

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

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

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

इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -

  • max_diffs:=2

  • अंतर:=0

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

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

  • मैं के लिए 0 से s के आकार की सीमा में, ऐसा करें

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

      • अंतर :=अंतर + 1

    • अगर s[i] सेंट में मौजूद नहीं है, तो

      • s[i] सेंट में डालें

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

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

    • अगर अंतर> max_diffs, तो

      • झूठी वापसी

  • सही लौटें यदि (अंतर 0 के समान है या अंतर 2 के समान है) और st का आकार st2 के आकार के समान है और st st2 के समान है, अन्यथा गलत है

आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -

उदाहरण

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 के लिए पायथन में दूसरे स्ट्रिंग में मैप किया जा सकता है

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

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

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

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

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