ধরুন আমাদের দুটি ছোট হাতের স্ট্রিং s এবং t আছে। কখনও কখনও, যখন আমরা একটি স্বরবর্ণ টাইপ করি, তখন কীটি দীর্ঘ চাপে থাকতে পারে এবং স্বরটি 1 বা তার বেশি বার পুনরাবৃত্তি হবে। আমাদের পরীক্ষা করতে হবে যে t টাইপ করা সম্ভব কিনা যা s নির্দেশ করে বা না।
সুতরাং, যদি ইনপুটটি s ="mine" t ="miiine" এর মতো হয়, তাহলে আউটপুটটি True হবে কারণ স্বরবর্ণ 'i' তিনবার পুনরাবৃত্তি হয়, অন্যান্য অক্ষরগুলি ঠিক থাকে৷
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- s_len :=s এর আকার
- t_len :=t এর আকার
- j :=0
- আমি 0 থেকে s_len - 1 রেঞ্জের জন্য, কর
- যদি s[i] t[j] এর মত না হয়, তাহলে
- মিথ্যে ফেরত দিন
- যদি s[i] স্বরবর্ণ না হয়, তাহলে
- j :=j + 1
- পরবর্তী পুনরাবৃত্তির জন্য যান
- cnt_1 :=1
- যখন i
- cnt_1 :=cnt_1 + 1
- i :=i + 1
- যদি s[i] t[j] এর মত না হয়, তাহলে
- cnt_2 :=1
- যদিও j
- cnt_2 :=cnt_2 + 1
- j :=j + 1
- মিথ্যে ফেরত দিন
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
উদাহরণ
def isVowel(c): vowel = "aeiou" return c in vowel def solve(s, t): s_len = len(s) t_len = len(t) j = 0 for i in range(s_len): if s[i] != t[j]: return False if isVowel(s[i]) == False: j = j + 1 continue cnt_1 = 1 while i < s_len - 1 and (s[i] == s[i + 1]): cnt_1 = cnt_1 + 1 i = i + 1 cnt_2 = 1 while j < t_len - 1 and t[j] == s[i]: cnt_2 = cnt_2 + 1 j = j + 1 if cnt_1 > cnt_2: return False return True s = "mine" t = "miiine" print(solve(s, t))
ইনপুট
"mine", "miiine"
আউটপুট
True