मान लीजिए, हमारे पास दो तार हैं। हम उन स्ट्रिंग्स से एक न्यूनतम न्यूनतम स्ट्रिंग बनाना चाहते हैं। स्ट्रिंग बनाने के लिए हम दो स्ट्रिंग्स के पहले अक्षर की तुलना करते हैं और एक स्ट्रिंग से शाब्दिक रूप से छोटे अक्षर को निकालते हैं। टाई के मामले में यानी अक्षर समान हैं; हम पहली स्ट्रिंग से अक्षर निकालते हैं। हम इस प्रक्रिया को तब तक दोहराते हैं जब तक कि दोनों तार खाली न हो जाएं। निर्मित न्यूनतम स्ट्रिंग को वापस करना होगा।
इसलिए, यदि इनपुट इनपुट_1 ='ट्यूटोरियल', इनपुट_2 ='बिंदु' जैसा है, तो आउटपुट POINTTUTORIALS
होगायदि हम दो तारों की तुलना करते हैं, तो हमें यह चरण-दर-चरण मिलता है -
TUTORIALS POINT TUTORIALS OINT = P TUTORIALS INT = PO TUTORIALS NT = POI TUTORIALS T = POIN TUTORIALS = POINT
चूंकि स्ट्रिंग्स में से एक खाली है, इसलिए पूरी पहली स्ट्रिंग अब परिणामी न्यूनतम स्ट्रिंग में रखी जाती है। तो, अंतिम स्ट्रिंग POINTTUTORIALS है।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- इनपुट_1:=इनपुट_1 + "जेड"
- input_2 :=input_2 + "z"
- temp_1 :=0
- temp_2 :=0
- res_str:=रिक्त स्ट्रिंग
- जबकि temp_1 <इनपुट का आकार_1 और temp_2 <इनपुट_2 का आकार, करते हैं
- अगर input_1[सूचकांक temp_1 से स्ट्रिंग के अंत तक]
- res_str:=res_str + input_1[temp_1]
- temp_1 :=temp_1 + 1
- अगर input_1[सूचकांक temp_1 से स्ट्रिंग के अंत तक]
- अन्यथा,
- res_str:=res_str + input_2[temp_2]
- temp_2 :=temp_2 + 1
- res_str :=res_str + input_1[सूचकांक temp_1 से स्ट्रिंग के दूसरे अंतिम तत्व तक]
- res_str :=res_str + input_2[सूचकांक temp_2 से स्ट्रिंग के दूसरे अंतिम तत्व तक]
उदाहरण
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
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