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