ধরুন আমাদের দুটি স্ট্রিং আছে s, t, এবং আরেকটি স্ট্রিং r আমাদের চেক করতে হবে s এবং t থেকে ক্রম অনুসারে অক্ষর মার্জ করে r পাওয়ার কোন উপায় আছে কিনা।
সুতরাং, যদি ইনপুটটি s ="xyz" t ="mno" r ="xymnoz" এর মত হয়, তাহলে আউটপুটটি True হবে, কারণ xyz এবং mno কে আন্তঃলিভ করে xymnoz গঠিত হতে পারে।
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
-
একটি ফাংশন সংজ্ঞায়িত করুন solve()। এটি s, t, r
লাগবে -
যদি s, t এবং r খালি হয়, তাহলে
-
রিটার্ন ট্রু
-
যদি r খালি হয়, তাহলে
-
রিটার্ন ফলস
-
-
-
-
যদি s খালি হয়, তাহলে
-
সত্য ফেরত দিন যখন t একই হয় r, অন্যথায় মিথ্যা
-
-
যদি t non-zero হয়, তাহলে
-
রিটার্ন s r
এর মতই
-
-
যদি s[0] r[0] এর মত হয়, তাহলে
-
যদি সমাধান(s[সূচী 1 থেকে শেষ পর্যন্ত], t, r[সূচী 1 থেকে শেষ পর্যন্ত]) সত্য হয়, তাহলে
-
রিটার্ন ট্রু
-
-
-
যদি t[0] r[0] এর মত হয়, তাহলে
-
যদি সমাধান(গুলি, t[সূচী 1 থেকে শেষ পর্যন্ত], r[সূচী 1 থেকে শেষ পর্যন্ত]) সত্য হয়, তাহলে
-
রিটার্ন ট্রু
-
-
-
রিটার্ন ফলস
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
উদাহরণ
class Solution: def solve(self, s, t, r): if not s and not t and not r: return True if not r: return False if not s: return t == r if not t: return s == r if s[0] == r[0]: if self.solve(s[1:], t, r[1:]): return True if t[0] == r[0]: if self.solve(s, t[1:], r[1:]): return True return False ob = Solution() s = "xyz" t = "mno" r = "xymnoz" print(ob.solve(s, t, r))
ইনপুট
"xyz", "mno", "xymnoz"
আউটপুট
True