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

पायथन में दो स्ट्रिंग्स से लेक्सिकली मिनिमल स्ट्रिंग बनाना


मान लीजिए, हमारे पास दो स्ट्रिंग्स हैं। हम उन स्ट्रिंग्स से लेक्सिकली मिनिमम स्ट्रिंग बनाना चाहते हैं। स्ट्रिंग बनाने के लिए हम दोनों स्ट्रिंग्स के पहले अक्षर की तुलना करते हैं और लेक्सिकली छोटे अक्षर को उनमें से एक स्ट्रिंग से निकालते हैं। टाई के मामले में यानी अक्षर समान हैं; हम पहले स्ट्रिंग से अक्षर निकालते हैं। हम इस प्रक्रिया को तब तक दोहराते हैं जब तक दोनों स्ट्रिंग्स खाली न हो जाएं। निर्मित मिनिमल स्ट्रिंग को लौटाना है।

उदाहरण के लिए, यदि इनपुट है input_1 = 'TUTORIALS', input_2 = 'POINT', तो आउटपुट होगा POINTTUTORIALS।

यदि हम दोनों स्ट्रिंग्स की तुलना करते हैं, तो हमें यह चरण-दर-चरण मिलता है:

TUTORIALS POINT
TUTORIALS OINT = P
TUTORIALS INT = PO
TUTORIALS NT = POI
TUTORIALS T = POIN
TUTORIALS = POINT

चूंकि एक स्ट्रिंग खाली है, अब पूरी पहली स्ट्रिंग रिजल्टेंट मिनिमल स्ट्रिंग में रखी जाती है। तो, अंतिम स्ट्रिंग POINTTUTORIALS है।

समाधान दृष्टिकोण

दोनों स्ट्रिंग्स के अंत में सेंटिनल 'z' जोड़ें (ताकि तुलना काम करे)। दो पॉइंटर्स का उपयोग करके शेष सफ़िक्स की तुलना करें, छोटे सफ़िक्स से अक्षर लें। अंत में सेंटिनल हटाएं।

  • input_1 += "z", input_2 += "z"।
  • temp_1 = 0, temp_2 = 0, res_str = ""।
  • जब temp_1 < len(input_1) और temp_2 < len(input_2):
    • यदि input_1[temp_1:] < input_2[temp_2:], तो res_str += input_1[temp_1], temp_1 += 1।
    • अन्यथा res_str += input_2[temp_2], temp_2 += 1।
  • अंतिम सेंटिनल हटाएं: res_str = res_str[:-1]।
  • शेष भाग जोड़ें।

पायथन कार्यान्वयन

def solve(input_1, input_2):
    input_1 += "z"
    input_2 += "z"
    temp_1 = 0
    temp_2 = 0
    res_str = ""
    while temp_1 < len(input_1) and temp_2 < len(input_2):
        if input_1[temp_1:] < input_2[temp_2:]:
            res_str += input_1[temp_1]
            temp_1 += 1
        else:
            res_str += input_2[temp_2]
            temp_2 += 1
    res_str = res_str[:-1]
    if temp_1 < len(input_1):
        res_str += input_1[temp_1:-1]
    if temp_2 < len(input_2):
        res_str += input_2[temp_2:-1]
    return res_str

print(solve('TUTORIALS', 'POINT'))

इनपुट

'TUTORIALS', 'POINT'

आउटपुट

POINTTUTORIALS

  1. पायथन प्रोग्राम: दो स्ट्रिंग्स से असामान्य शब्द खोजें पायथन प्रोग्राम: दो स्ट्रिंग्स से असामान्य शब्द खोजें

    इस लेख में हम दी गई समस्या के समाधान के बारे में जानेंगे। समस्या कथन हमें दो स्ट्रिंग्स दी गई हैं, हमें दी गई स्ट्रिंग्स से असामान्य शब्द प्राप्त करने हैं। उदाहरण # असामान्य शब्द def find(A, B): # काउंट count = {} # A में डालें for word in A.split(): count[word] = count.get(w

  1. पायथन प्रोग्राम: स्ट्रिंग से nth कैरेक्टर हटाएं पायथन प्रोग्राम: स्ट्रिंग से nth कैरेक्टर हटाएं

    इस लेख में, हम नीचे दिए गए प्रॉब्लम स्टेटमेंट के समाधान के बारे में सीखेंगे: प्रॉब्लम स्टेटमेंट हमें एक स्ट्रिंग दी गई है, हमें दी गई स्ट्रिंग से i-वें इंडेक्स वाले कैरेक्टर को हटाना है और इसे प्रदर्शित करना है। पायथन में किसी भी स्ट्रिंग में, इंडेक्सिंग हमेशा 0 से शुरू होती है। मान लीजिए हमारे पा

  1. - पायथन में सूची से स्ट्रिंग कैसे बनाएं?

    पायथन में एक बिल्ट-इन join() फ़ंक्शन होता है जो सीक्वेंस ऑब्जेक्ट में एलिमेंट्स को जोड़कर और उनके बीच सेपरेटर डालकर एक स्ट्रिंग वापस करता है। यदि हमें बिना किसी सेपरेटर के स्ट्रिंग चाहिए, तो हम इसे नल स्ट्रिंग से इनिशियलाइज़ करते हैं। >>> lst = [h, e, l, l, o] >>> separator = >