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

जांचें कि क्या पायथन में दिए गए बाधाओं के साथ एक स्ट्रिंग को दूसरे में बदलना संभव है

मान लीजिए कि हमारे पास दो स्ट्रिंग्स s और t हैं जिनमें केवल तीन अक्षर 'A', 'B' और '#' हैं। हमें यह जांचना होगा कि क्या इन कार्यों को s पर निष्पादित करके s को t में बदलना संभव है।

  • 'ए' केवल बाईं ओर जा सकता है
  • 'B' केवल दायीं ओर जा सकता है
  • न तो 'ए' और न ही 'बी' एक दूसरे को पार कर सकते हैं

इसलिए, यदि इनपुट s ="##AB##B" t ="A###B#B" जैसा है, तो आउटपुट सही होगा क्योंकि s A आसानी से सबसे बाईं ओर की स्थिति में जा सकता है, और मध्य B एक कदम दाईं ओर जा सकते हैं

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

  • s :=s से वर्ण लेकर एक सूची
  • t :=t से वर्ण लेकर एक सूची
  • यदि s का आकार t के आकार के समान नहीं है, तो
    • झूठी वापसी
  • यदि s और t में 'A' की संख्या भिन्न है या s और t में 'B' की संख्या भिन्न है या, तो
    • झूठी वापसी
  • i के लिए 0 से लेकर s-1 के आकार तक के लिए
    • यदि s[i] '#' के समान नहीं है, तो
      • जे के लिए 0 से टी -1 के आकार में, करो
        • अगर (t[j] s[i] के समान नहीं है) और t[j] '#' के समान नहीं है, तो
          • झूठी वापसी
        • यदि t[j], s[i] के समान है, तो
          • t[j] :='#'
          • यदि s[i] 'A' और i
          • झूठी वापसी
        • यदि s[i] 'B' के समान है और i> j, तो
          • झूठी वापसी
        • लूप से बाहर आएं
  • सही लौटें
  • उदाहरण

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

    def solve(s, t):
       s = list(s)
       t = list(t)
       if len(s) != len(t):
          return False
       if s.count('A') != t.count('A') or s.count('B') != t.count('B'):
          return False
       for i in range(len(s)):
          if s[i] != '#':
             for j in range(len(t)):
                if (t[j] != s[i]) and t[j] != '#':
                   return False
                if t[j] == s[i]:
                   t[j] = '#'
                   if s[i] == 'A' and i < j:
                      return False
                   if s[i] == 'B' and i > j:
                      return False
                   break
       return True
    s = "##AB##B"
    t = "A###B#B"
    print (solve(s, t))

    इनपुट

    "##AB##B", "A###B#B"

    आउटपुट

    True

    1. पायथन में स्ट्रिंग डिक्शनरी को डिक्शनरी में बदलें

      इस लेख में हम देखेंगे कि स्ट्रिंग्स वाले किसी डिक्शनरी को की-वैल्यू पेयर के सामान्य डिक्शनरी में कैसे बदला जाए। json.loads के साथ Json.loads किसी दिए गए स्ट्रिंग को पास कर सकता है और हमें डेटा की संरचना को संरक्षित करने वाले सामान्य स्ट्रिंग्स के रूप में परिणाम दे सकता है। इसलिए हम दिए गए स्ट्रिंग

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

      जैसा कि अजगर विभिन्न डेटा प्रकारों को संभालता है, हम एक ऐसी स्थिति में आएंगे जहां एक सूची एक स्ट्रिंग के रूप में दिखाई देगी। इस लेख में हम देखेंगे कि कैसे एक स्ट्रिंग को एक सूची में परिवर्तित किया जाए। स्ट्रिप और स्प्लिट के साथ हम वर्गाकार कोष्ठकों को हटाने के लिए पहले स्ट्रिप विधि लागू करते हैं और

    1. एक पायथन स्ट्रिंग को दूसरे में जोड़ें

      अजगर में तार जोड़कर हम एक नई स्ट्रिंग प्राप्त करने के लिए उन्हें बस जोड़ देते हैं। यह टेक्स्ट एनालिटिक्स आदि जैसे कई परिदृश्यों में उपयोगी है। नीचे हम इस कार्य के लिए दो दृष्टिकोणों पर विचार कर रहे हैं। +=ऑपरेटर का उपयोग करना + ऑपरेटर का उपयोग स्ट्रिंग्स के लिए उसी तरह किया जा सकता है जैसा कि संख्य