Giả sử chúng ta có một chuỗi s và một chuỗi t khác làm mẫu, chúng ta phải kiểm tra xem các ký tự trong s có theo đúng thứ tự như được xác định bởi các ký tự có trong t hay không. Ở đây chúng tôi không có ký tự trùng lặp nào trong mẫu.
Vì vậy, nếu đầu vào là s ="hello world" t ="hw", 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 -
- nếu kích thước của s
- trả về Sai
- x:=t [i], y:=t [i + 1]
- right:=chỉ số cuối cùng của x tính bằng s
- left:=chỉ mục đầu tiên của x tính bằng s
- nếu bên phải là -1 hoặc bên trái là -1 hoặc bên phải> bên trái, thì
- trả về Sai
Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -
Mã mẫu
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))
Đầu vào
"hello world", "hw"
Đầu ra
True