Giả sử chúng ta có hai chuỗi chữ thường s và t. Đôi khi, khi chúng ta nhập một nguyên âm, phím có thể bị nhấn lâu và nguyên âm đó sẽ được lặp lại 1 hoặc nhiều lần. Chúng ta phải kiểm tra xem liệu t có được nhập cho biết s hay không.
Vì vậy, nếu đầu vào là s ="mine" t ="miiine", thì đầu ra sẽ là True vì nguyên âm 'i' được lặp lại ba lần, các chữ cái khác cũng được.
Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -
- s_len:=kích thước của s
- t_len:=kích thước của t
- j:=0
- đối với tôi trong phạm vi từ 0 đến s_len - 1, thực hiện
- nếu s [i] không giống với t [j], thì
- trả về Sai
- nếu s [i] không phải là nguyên âm thì
- j:=j + 1
- chuyển sang lần lặp tiếp theo
- cnt_1:=1
- trong khi i
- cnt_1:=cnt_1 + 1
- i:=i + 1
- nếu s [i] không giống với t [j], thì
- cnt_2:=1
- while j
- cnt_2:=cnt_2 + 1
- j:=j + 1
- trả về Sai
Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -
Ví dụ
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))
Đầu vào
"mine", "miiine"
Đầu ra
True