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

Python में दो Strings का Largest Merge

मान लीजिए हमारे पास दो strings 'a' और 'b' और एक string 'merge' है। Task है string 'merge' को 'a' और 'b' के characters से इस तरह fill करना कि:

  • यदि string 'a' non-empty है, तो string 'a' से first character remove करें और string 'merge' में copy करें।
  • यदि string 'b' non-empty है, तो string 'b' से first character remove करें और string 'merge' में copy करें।
  • यदि strings 'a' और 'b' non-empty हैं, तो string 'a' से first characters remove करें और string 'merge' में copy करें और फिर string 'b' से first character (यदि कोई हो) remove करें और string 'merge' में copy करें।
  • Characters को दोनों strings से lexicographically remove करें, जिसका मतलब है, यदि string 'a' string 'b' से greater है, तो string 'a' से character remove करें और फिर string 'b' से।
  • String 'merge' return करें।

उदाहरण के लिए

Input-1:

a = "bacaa"
b = "abcaa"

Output:

babcacaaaa

व्याख्या:

चूंकि दिया गया string 'a' lexicographically string 'b' से greater है, हम string 'a' से first character extract करेंगे, यानी "b" और फिर string 'b' से। Extract करने के बाद, string "babcacaaaa" बनेगी।

Problem हल करने का दृष्टिकोण

इस problem को हल करने का recursive approach यह है कि हम string 'a' और string 'b' के प्रत्येक character को extract करेंगे और check करेंगे यदि string 'a' के characters lexicographically दूसरे string से greater हैं और finally string 'merge' में concatenate करेंगे।

हम प्रत्येक character के substring को कुछ positions के बाद ढूंढेंगे और 'merge' में concatenate करेंगे यदि यह दूसरे string से lexicographically greater है।

  • दो input strings 'a' और 'b' लें।
  • एक recursive string function concatenateLargest(string a, string b) दो strings को input के रूप में लेता है और concatenation के बाद largest string return करता है, यानी (string 'a' + string 'b')।
  • यदि 'a > b', तो string 'a' को position '0' से split करें और string 'a' से output return करें।
  • यदि 'a < b', तो string 'b' को position '0' से split करें और string 'b' से output return करें।
  • Concatenated string return करें।

उदाहरण

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))

उपरोक्त code चलाने से output generate होगा:

आउटपुट

bacabcaaaa

दो strings "bacaa" और "abcaa" दिए गए problem के अनुसार merge करने के बाद "bacabcaaaa" बन जाएंगी।

  1. - पायथन कोड: दो स्ट्रिंग्स के कॉमन कैरेक्टर्स को अल्फाबेटिकल ऑर्डर में प्रिंट करना

    दो यूजर इनपुट स्ट्रिंग्स दी गई हैं, हमारा कार्य सभी कॉमन कैरेक्टर्स को अल्फाबेटिकल ऑर्डर में प्रिंट करना है।उदाहरणInput: string1: python string2: program Output: opव्याख्यादोनों स्ट्रिंग्स के बीच कॉमन अक्षर हैं o (1 बार), p (1 बार)।एल्गोरिदमचरण 1: पहले हम दो इनपुट स्ट्रिंग लेते हैं। चरण 2: अगला हम इ

  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) का भी उपयोग कर सकते हैं। उदाहरण के लिए: s = - seq = (a,