ধরুন আমাদের একই আকারের দুটি স্ট্রিং s এবং t আছে, আমাদের পরীক্ষা করতে হবে s-এর কিছু স্থানান্তর আছে কিনা, বলুন s1, এবং t-এর পারমুটেশন, বলুন t1, যেমন:s1[i] ≤ t1[i] সবার জন্য 0 ≤ i
সুতরাং, যদি ইনপুটটি s ="vyx" t ="wzx" এর মত হয়, তাহলে আউটপুট হবে True, যেমন আমাদের s1 ="vxy" এবং t1 ="wxz" থাকতে পারে।
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- যদি s এবং t খালি হয়, তাহলে
- সত্য ফেরান
- s :=স্ট্রিং s সাজান
- t :=স্ট্রিং টি সাজান
- একটি ফাংশন util() সংজ্ঞায়িত করুন। এটি s1, s2 লাগবে৷
- আমি 0 থেকে s1 আকারের রেঞ্জের জন্য,
- করুন
- যদি s1[i]> t1[i] হয়, তাহলে
- মিথ্যে ফেরত দিন
- যদি s1[i]> t1[i] হয়, তাহলে
- সত্য ফেরান
- প্রধান পদ্ধতি থেকে নিম্নলিখিতগুলি করুন -
- যদি util(s, t) সত্য হয়, তাহলে
- সত্য ফেরান
- s এবং t অদলবদল করুন
- ইউটিল(গুলি, টি) ফেরত দিন
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
উদাহরণ
class Solution: def solve(self, s, t): if not len(s) or not len(t): return True s = sorted(s) t = sorted(t) def util(s1, t1): for i in range(len(s1)): if s1[i] > t1[i]: return False return True if util(s, t): return True s, t = t, s return util(s, t) ob = Solution() s = "vyx" t = "wzx" print(ob.solve(s, t))
ইনপুট
"vyx", "wzx"
আউটপুট
True