ধরুন আমাদের দুটি স্ট্রিং s এবং t আছে। আমরা নিম্নলিখিত উপায়ে মার্জ নামে একটি স্ট্রিং তৈরি করতে চাই:যখন s বা t খালি নয়, নিম্নলিখিত বিকল্পগুলির মধ্যে একটি নির্বাচন করুন −
-
যদি s খালি না হয়, তাহলে s-এর মধ্যে প্রথম অক্ষরটি যুক্ত করুন এবং s থেকে মুছে ফেলুন।
-
যদি t খালি না হয়, তাহলে t এর মধ্যে প্রথম অক্ষরটি যোগ করুন এবং এটিকে t থেকে মুছে দিন।
পরিশেষে, আমাদের আভিধানিকভাবে সবচেয়ে বড় মিল খুঁজে বের করতে হবে যা আমরা গঠন করতে পারি।
সুতরাং, যদি ইনপুটটি s ="zxyxx" t ="yzxxx" এর মত হয়, তাহলে আউটপুট হবে "zyzxyxxxxxx"
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
-
a :=0, b :=0
-
মার্জ :=ফাঁকা স্ট্রিং
-
W1 :=s
এর আকার -
W2 :=t এর আকার
-
যখন a
-
যদি সূচী a থেকে শেষ পর্যন্ত s এর সাবস্ট্রিং> সূচক b থেকে শেষ পর্যন্ত t এর সাবস্ট্রিং, তাহলে
-
মার্জ :=মার্জ কনক্যাটেনেট s[a]
-
a :=a + 1
-
-
অন্যথায়,
-
মার্জ :=মার্জ কনক্যাটেনেট t[b>
-
b :=b + 1
-
-
-
রিটার্ন মার্জ কনক্যাটেনেট (ইনডেক্স a থেকে শেষ পর্যন্ত s-এর সাবস্ট্রিং) কনক্যাটেনেট (ইনডেক্স b থেকে শেষ পর্যন্ত t-এর সাবস্ট্রিং)
উদাহরণ
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
def solve(s, t): a = b = 0 merge = "" W1 = len(s) W2 = len(t) while a < W1 and b < W2: if s[a:] > t[b:]: merge += s[a] a += 1 else: merge += t[b] b += 1 return merge + s[a:] + t[b:] s = "zxyxx" t = "yzxxx" print(solve(s, t))
ইনপুট
"zxyxx", "yzxxx"
আউটপুট
zyzxyxxxxx