ধরুন আমাদের একটি স্ট্রিং s এবং প্যাটার্ন হিসাবে আরেকটি স্ট্রিং t আছে, আমাদের পরীক্ষা করতে হবে s-এর অক্ষরগুলি টি-তে উপস্থিত অক্ষর দ্বারা নির্ধারিত ক্রম অনুসরণ করে কিনা। এখানে আমাদের প্যাটার্নে কোনো সদৃশ অক্ষর নেই।
সুতরাং, যদি ইনপুটটি s ="hello world" t ="hw" এর মত হয়, তাহলে আউটপুট হবে True।
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- যদি s এর আকার হয়
- মিথ্যে ফেরত দিন
- x :=t[i], y :=t[i + 1]
- ডান :=s-এ x এর শেষ সূচক
- বামে :=s-এ x এর প্রথম সূচক
- যদি ডান হয় -1 বা বাম হয় -1 বা ডান> বাম, তাহলে
- মিথ্যে ফেরত দিন
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
উদাহরণ কোড
def solve(s, t): if len(s) < len(t) : return False for i in range(len(t) - 1): x = t[i] y = t[i + 1] right = s.rindex(x) left = s.index(y) if right == -1 or left == -1 or right > left: return False return True s = "hello world" t = "hw" print(solve(s, t))
ইনপুট
"hello world", "hw"
আউটপুট
True