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

स्ट्रिंग पायथन में एक और स्ट्रिंग में बदल जाती है

मान लीजिए हमारे पास दो तार हैं str1 तथा str2 । और उनकी लंबाई समान है, हमें यह जांचना होगा कि क्या हम शून्य या अधिक रूपांतरण करके str1 को str2 में बदल सकते हैं।

एक रूपांतरण में हम एक वर्ण की सभी घटनाओं को str1 में किसी अन्य लोअरकेस अंग्रेजी वर्ण में परिवर्तित कर सकते हैं। हमें यह जांचना होगा कि हम str1 को str2 में बदल सकते हैं या नहीं।

इसलिए, यदि इनपुट str1 ="aabcc", str2 ="ccdee" जैसा है, तो आउटपुट सत्य होगा, जैसे 'c' को 'e' में कनवर्ट करें, फिर 'b' से 'd' और फिर 'a' से 'c '। यहां हमें यह ध्यान रखना होगा कि रूपांतरणों का क्रम मायने रखता है।

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

  • फंक्शन कंप्रेस () को परिभाषित करें। इसमें s

    . लगेगा
  • n :=s का आकार

  • a :=एक नई सूची

  • गिनती :=1

  • 1 से n की सीमा में i के लिए, करें

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

      • . के अंत में गिनती डालें
      • गिनती:=1

    • अन्यथा,

      • गिनती :=गिनती + 1

  • . के अंत में गिनती डालें
  • वापसी एक

  • फ़ंक्शन को परिभाषित कर सकते हैं कन्वर्ट ()। इसमें str1, str2 लगेगा

  • ए:=संपीड़ित (str1)

  • बी:=सेक (str2)

  • n :=a का आकार, m :=b का आकार

  • d:=एक नया नक्शा

  • n :=न्यूनतम n, m

  • मैं :=0

  • जबकि i

    • अगर a[i]>b[i] शून्य नहीं है, तो

      • झूठी वापसी

    • मैं :=मैं + 1

  • str2 में प्रत्येक i के लिए, करें

    • अगर मैं d में नहीं हूं तो गैर-शून्य है, तो

      • d[i]:=1

  • वापसी सही है अगर 26 - d का आकार शून्य नहीं है या str1 str2 के समान है अन्यथा गलत है

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

उदाहरण

class Solution(object):
   def compress(self,s):
      n = len(s)
      a = []
      count = 1
      for i in range(1,n):
         if s[i]!=s[i-1]:
            a.append(count)
            count=1
         else:
            count+=1
      a.append(count)
      return a
   def canConvert(self, str1, str2):
      a = self.compress(str1)
      b = self.compress(str2)
      n = len(a)
      m = len(b)
      d={}
      n = min(n,m)
      i = 0
      while i<n:
         if a[i]>b[i]:
            return False
            i+=1
         for i in str2:
            if i not in d:
               d[i]=1
      return True if 26-len(d) or str1 == str2 else False

ob = Solution()
print(ob.canConvert("aabcc", "ccdee"))

इनपुट

"aabcc", "ccdee"

आउटपुट

True

  1. पायथन में स्ट्रिंग पर लॉजिकल ऑपरेटर्स?

    पायथन लॉजिकल ऑपरेटर और और या स्ट्रिंग्स पर लागू किया जा सकता है। एक खाली स्ट्रिंग गलत का बूलियन मान लौटाती है। आइए पहले इन दो लॉजिकल ऑपरेटर और और या के व्यवहार को समझें। और ऑपरेटर यदि कोई हो तो पहला असत्य मान लौटाएँ, अन्यथा व्यंजक या संकारक में अंतिम मान लौटाएँ:यदि कोई हो तो पहला सत्य मान लौटाएँ, अ

  1. वर्णों की सूची को एक स्ट्रिंग में बदलने के लिए पायथन प्रोग्राम

    पायथन को इस प्रकार के रूपांतरण की बहुत आवश्यकता होती है। उदाहरण के लिए, ऐसे रूपांतरण क्रमांकन उद्देश्यों के लिए उपयोगी होते हैं। ऐसे रूपांतरण का एक उदाहरण होगा - ['h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd&

  1. मैं पायथन में एक टुपल को दूसरे टुपल में कैसे जोड़ सकता हूं?

    आप एक + ऑपरेटर का उपयोग करके सीधे टपल को दूसरे टपल में जोड़ सकते हैं। उदाहरण के लिए, उदाहरण x = (1, 2, 3) y = (4, 5) x = x + y print(x) आउटपुट यह आउटपुट देगा x = (1, 2, 3) y = (4, 5) x = x + y