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

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

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

  • यदि s गैर-रिक्त है, तो पहले वर्ण को s में मर्ज करने के लिए संलग्न करें और इसे s से हटा दें।

  • यदि t गैर-रिक्त है, तो t में पहले वर्ण को मर्ज करने के लिए संलग्न करें और इसे t से हटा दें।

इसलिए हमें शब्दावली की दृष्टि से सबसे बड़ा मर्ज ढूंढना होगा जो हम बना सकते हैं।

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

  • s में से चुनें:मर्ज ="z", s ="xyxx", t ="yzxxx"

  • t से चुनें:मर्ज ="zy", s ="xyxx", t ="zxxx"

  • t से चुनें:मर्ज ="zyz", s ="xyxx", t ="xxx"

  • s से चुनें:मर्ज ="zyzx", s ="yxx", t ="xxx"

  • s से चुनें:मर्ज ="zyzxy", s ="xx", t ="xxx"

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

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

  • उत्तर:=रिक्त स्ट्रिंग

  • idx1 :=0, idx2 :=0

  • जबकि idx1

    • अगर s[idx1]> t[idx2] या (s[idx1] t[idx2] के समान है और s का विकल्प [इंडेक्स idx1 से अंत तक]>=t का सबस्ट्रिंग [इंडेक्स idx2 से अंत तक]), तो

      • ans :=ans concatenate s[idx1]

      • idx1 :=idx1 + 1

    • अन्यथा जब s[idx1]

      • ans :=ans concatenate t[idx2]

      • idx2 :=idx2 + 1

  • वापसी ans concatenate s [इंडेक्स idx1 से अंत तक] concatenate 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))

इनपुट

[7,4,5,3,8], [[0,2,2],[4,2,4],[2,13,100]]

आउटपुट

zyzxyxxxxx

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

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

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

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

  1. दो शब्दकोशों को मर्ज करने के लिए पायथन कार्यक्रम

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