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

Python में दिए गए प्रतिबंधों के साथ एक स्ट्रिंग को दूसरी में बदलने की संभावना की जांच कैसे करें?

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

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

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

हल करने के चरण

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

उदाहरण

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. - Python में स्ट्रिंग डिक्शनरी को डिक्शनरी में बदलें

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

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

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

  1. - एक Python स्ट्रिंग को दूसरी में जोड़ें

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