ধরুন আমাদের দুটি স্ট্রিং s এবং t আছে। আমরা t গঠন করতে চাই, কিন্তু কীবোর্ডে কিছু সমস্যা আছে যেখানে কিছু অক্ষর আটকে গেছে তাই সেগুলি 1 বা তার বেশি বার লেখা হতে পারে। আমাদের চেক করতে হবে এটা সম্ভব যে s টাইপ করা t লেখার জন্য ছিল বা না।
সুতরাং, ইনপুট যদি s ="appppleee" t ="apple" এর মত হয়, তাহলে আউটপুট হবে True।
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- i :=0, j :=0
- s_len :=s এর আকার
- t_len :=t এর আকার
- t_last :=ফাঁকা স্ট্রিং
- যখন j
- যদি i s_len এর মত হয়, তাহলে
- মিথ্যে ফেরত দিন
- যদি s[i] t[j] এর মত হয়, তাহলে
- t_last :=t[j]
- i :=i + 1
- j :=j + 1
- অন্যথায় যখন s[i] t_last এর মত হয়, তাহলে
- i :=i + 1
- অন্যথায়,
- মিথ্যে ফেরত দিন
- যদি i s_len এর মত হয়, তাহলে
- সত্য ফেরান
উদাহরণ
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
def solve(s, t): i = j = 0 s_len = len(s) t_len = len(t) t_last = "" while j < t_len: if i == s_len: return False if s[i] == t[j]: t_last = t[j] i += 1 j += 1 elif s[i] == t_last: i += 1 else: return False if i < s_len: return all(char == t_last for char in s[i:]) else: return True s = "appppleee" t = "apple" print(solve(s, t))
ইনপুট
"appppleee", "apple"
আউটপুট
True