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

पायथन में दो दिए गए स्ट्रिंग्स के अधिकतम लंबाई मर्ज को खोजने का प्रोग्राम


मान लीजिए हमारे पास दो स्ट्रिंग्स s और t हैं। हमें merge नामक एक स्ट्रिंग बनानी है निम्न तरीके से: जब तक s या t नॉन-खाली हैं, निम्नलिखित विकल्पों में से एक चुनें:

  • यदि s नॉन-खाली है, तो s के पहले कैरेक्टर को merge में जोड़ें और उसे s से हटा दें।
  • यदि t नॉन-खाली है, तो t के पहले कैरेक्टर को merge में जोड़ें और उसे t से हटा दें।

हमें लेक्सिकोग्राफिकली सबसे बड़ा मर्ज ढूंढना है जो हम बना सकते हैं।

उदाहरण के लिए, यदि इनपुट s = "zxyxx", t = "yzxxx" है, तो आउटपुट zyzxyxxxxx होगा, क्योंकि:

  • s से चुनें: merge = "z", s = "xyxx", t = "yzxxx"
  • t से चुनें: merge = "zy", s = "xyxx", t = "zxxx"
  • t से चुनें: merge = "zyz", s = "xyxx", t = "xxx"
  • s से चुनें: merge = "zyzx", s = "yxx", t = "xxx"
  • s से चुनें: merge = "zyzxy", s = "xx", t = "xxx"

फिर s और t से शेष 5 x's को मर्ज के अंत में जोड़ें।

हल करने के चरण

  1. ans := खाली स्ट्रिंग
  2. idx1 := 0, idx2 := 0
  3. idx1 < len(s) और idx2 < len(t) तक व्हाइल लूप चलाएं:
    • यदि s[idx1] > t[idx2] या (s[idx1] == t[idx2] और s[idx1:] >= t[idx2:]), तो:
      • ans := ans + s[idx1]
      • idx1 := idx1 + 1
    • अन्यथा जब s[idx1] < t[idx2] या (s[idx1] == t[idx2] और s[idx1:] <= t[idx2:]), तो:
      • ans := ans + t[idx2]
      • idx2 := idx2 + 1
  4. ans + s[idx1:] + t[idx2:] वापस करें।

उदाहरण

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

def solve(s, t):
    ans = ""
    idx1 = idx2 = 0
    while idx1 < len(s) and idx2 < len(t):
        if s[idx1] > t[idx2] or (s[idx1] == t[idx2] and s[idx1:] >= t[idx2:]):
            ans += s[idx1]
            idx1 += 1
        elif s[idx1] < t[idx2] or (s[idx1] == t[idx2] and s[idx1:] <= t[idx2:]):
            ans += t[idx2]
            idx2 += 1
    return ans + s[idx1:] + t[idx2:]

s = "zxyxx"
t = "yzxxx"
print(solve(s, t))

इनपुट

"zxyxx", "yzxxx"

आउटपुट

zyzxyxxxxx
  1. - पायथन में गैर-साझा शब्दों की अधिकतम लंबाई खोजने का प्रोग्राम

    मान लीजिए हमारे पास words नामक लोअरकेस वर्णमाला स्ट्रिंग्स की एक सूची है, हमें दो अलग-अलग शब्दों की लंबाई का अधिकतम योग ढूंढना है जो एक सामान्य अक्षर साझा नहीं करते। इसलिए, यदि इनपुट words = [abcd, mno, abdcmno, amno] जैसा है, तो आउटपुट 7 होगा, क्योंकि जो शब्द कोई सामान्य अक्षर साझा नहीं करते वे [ab

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

    मान लीजिए हमारे पास लंबाई n की दो स्ट्रिंग्स s और t हैं। हम s से एक वर्ण और t से एक वर्ण ले सकते हैं और उन्हें स्वैप कर सकते हैं। हम असीमित संख्या में स्वैप कर सकते हैं; हमें जांचना है कि क्या दोनों स्ट्रिंग्स को बराबर बनाना संभव है या नहीं। उदाहरण के लिए, यदि इनपुट s = xy, t = yx है, तो आउटपुट Tru

  1. - Python प्रोग्राम दो डिक्शनरी को मर्ज करने के लिए

    इस ट्यूटोरियल में, हम Python में दो डिक्शनरी को कैसे संयोजित करें, यह सीखने जा रहे हैं। आइए दो डिक्शनरी को मर्ज करने के कुछ तरीके देखते हैं।update() मेथडसबसे पहले, हम डिक्शनरी के इनबिल्ट मेथड update() को मर्ज करने के लिए देखेंगे। update() मेथड None ऑब्जेक्ट लौटाता है और दो डिक्शनरी को एक में जोड़ता