ধরুন আমাদের দুটি স্ট্রিং 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