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

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

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

  • यदि स्ट्रिंग 'ए' गैर-रिक्त है, तो स्ट्रिंग 'ए' से पहले अक्षर को हटा दें और इसे स्ट्रिंग 'मर्ज' में कॉपी करें।
  • यदि स्ट्रिंग 'बी' गैर-रिक्त है, तो स्ट्रिंग 'बी' से पहले अक्षर को हटा दें और इसे स्ट्रिंग 'मर्ज' में कॉपी करें।
  • यदि स्ट्रिंग्स 'ए' और 'बी' गैर-रिक्त हैं, तो स्ट्रिंग 'ए' से पहले वर्णों को हटा दें और इसे स्ट्रिंग 'मर्ज' में कॉपी करें और फिर स्ट्रिंग 'बी' से पहले अक्षर (यदि कोई हो) को हटा दें। ' और इसे 'मर्ज' स्ट्रिंग में कॉपी करें।
  • दोनों स्ट्रिंग्स से वर्णों को लेक्सिकोग्राफ़िक रूप से हटा दें, जिसका अर्थ है, यदि स्ट्रिंग 'ए' स्ट्रिंग 'बी' से बड़ी है, तो स्ट्रिंग 'ए' से वर्ण हटा दें और फिर स्ट्रिंग 'बी'।
  • स्ट्रिंग 'मर्ज' लौटाएं।

उदाहरण के लिए

इनपुट-1:

a = “bacaa”

b = “abcaa”

आउटपुट:

babcacaaaa

स्पष्टीकरण:

चूंकि दी गई स्ट्रिंग 'ए' स्ट्रिंग 'बी' से शब्दावली की दृष्टि से बड़ी है, इसलिए हम स्ट्रिंग 'ए' से पहला अक्षर निकालेंगे, यानी, "बी" और फिर स्ट्रिंग 'बी' से। निकालने के बाद, स्ट्रिंग "babcacaaaa" होगी।

इस समस्या को हल करने के लिए दृष्टिकोण

इस समस्या को हल करने के लिए पुनरावर्ती दृष्टिकोण यह है कि हम स्ट्रिंग 'ए' और स्ट्रिंग 'बी' के प्रत्येक वर्ण को निकालेंगे और जांच करेंगे कि क्या स्ट्रिंग 'ए' के ​​अक्षर अन्य स्ट्रिंग की तुलना में लेक्सिकोग्राफिक रूप से बड़े हैं और अंत में स्ट्रिंग 'मर्ज' से जुड़ते हैं। ।

हम कई पदों के बाद प्रत्येक वर्ण की सबस्ट्रिंग पाएंगे और 'मर्ज' में संयोजित होंगे यदि यह अन्य स्ट्रिंग की तुलना में शब्दावली से बड़ा है।

  • दो इनपुट स्ट्रिंग 'ए' और 'बी' लें।
  • एक पुनरावर्ती स्ट्रिंग फ़ंक्शन concatenateLargest(string a, string b) इनपुट के रूप में दो स्ट्रिंग लेता है और संयोजन के बाद सबसे बड़ी स्ट्रिंग देता है, यानी, (स्ट्रिंग 'ए' + स्ट्रिंग 'बी')।
  • यदि 'a> b' है, तो स्ट्रिंग 'a' को '0' स्थिति से विभाजित करें और स्ट्रिंग 'a' से आउटपुट लौटाएं।
  • यदि 'ए <बी' है, तो स्ट्रिंग 'बी' को स्थिति '0' से विभाजित करें और स्ट्रिंग 'बी' से आउटपुट लौटाएं।
  • सम्मिलित स्ट्रिंग लौटाएं।

उदाहरण

def concatenateLargest(a, b):
   ans = ""
   while a and b:
      if a > b:
         ans = a[0]
         a = a[1:]
      else:
         ans = b[0]
         b = b[1:]
   ans = a
   ans = b
   return ans
a = "bacaa"
b = "abcaa"
print(concatenateLargest(a, b))

उपरोक्त कोड को चलाने से आउटपुट इस प्रकार उत्पन्न होगा,

आउटपुट

bacabcaaaa

दी गई समस्या के अनुसार विलय के बाद दो तार "बका" और "अबका" "बकाबका" बन जाएंगे।


  1. दो स्ट्रिंग्स के सामान्य वर्णों को वर्णानुक्रम में मुद्रित करने के लिए पायथन कोड

    दो उपयोगकर्ता इनपुट स्ट्रिंग्स दिए गए हैं, हमारा काम सभी सामान्य वर्णों को वर्णानुक्रम में प्रिंट करना है। उदाहरण Input: string1: python string2: program Output: op स्पष्टीकरण दो स्ट्रिंग्स के बीच जो अक्षर सामान्य हैं वे हैं o (1 बार), p (1 बार) एल्गोरिदम Step 1: first we take two input string. Ste

  1. हम दो पायथन शब्दकोशों को कैसे मर्ज कर सकते हैं?

    पायथन 3.5+ में, आप शब्दकोश को अनपैक करने के लिए ** ऑपरेटर का उपयोग कर सकते हैं और निम्नलिखित सिंटैक्स का उपयोग करके कई शब्दकोशों को जोड़ सकते हैं: a = {'foo': 125} b = {'bar': "hello"} c = {**a, **b} print(c) यह आउटपुट देगा: {'foo': 125, 'bar': 'hello&#

  1. पायथन में एक स्ट्रिंग में कनवर्ट करने के लिए दो तारों में कैसे शामिल हों?

    पायथन में 2 स्ट्रिंग्स को जोड़ने के लिए, हम कॉन्सटेनेशन ऑपरेटर, + का उपयोग कर सकते हैं। उदाहरण के लिए: str1 = "Hello" str2 = "World" str3 = str1 + str2 print str3 यह हमें आउटपुट देगा: HelloWorld हम कई स्ट्रिंग्स को एक साथ जोड़ने के लिए str.join(seq) का भी उपयोग कर सकते हैं। उदा