Computer >> Máy Tính >  >> Lập trình >> Python

Kiểm tra xem một chuỗi có thể trở nên trống không bằng cách xóa đệ quy một chuỗi con đã cho trong Python

Giả sử chúng ta có hai chuỗi s và t. Chúng ta có thể xóa t khỏi s bất kỳ số lần nào. Và t chỉ xuất hiện một lần tại một thời điểm. Chúng ta phải kiểm tra xem s có thể trống hay không bằng cách loại bỏ t nhiều lần theo yêu cầu.

Vì vậy, nếu đầu vào là s =​​"pipipinnn" t ="pin", thì đầu ra sẽ là True vì chúng ta có thể xóa "pin" khỏi "pipipinnn", sau đó chúng ta sẽ nhận được "pipinn", một lần nữa xóa "pin" để lấy chuỗi "pin", sau đó xóa chuỗi để trống.

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -

  • trong khi kích thước của s> 0, thực hiện
    • vị trí:=chỉ số bắt đầu của t tính bằng s
    • nếu vị trí không có trong s, thì
      • ra khỏi vòng lặp
    • s:=xóa t khỏi s một lần
  • trả về true khi kích thước của s bằng 0, ngược lại là false

Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -

Ví dụ

def solve(s, t):
   while len(s) > 0:
      position = s.find(t)
      if position == -1:
         break
      s = s.replace(t, "", 1)
   return len(s) == 0
s = "pipipinnn"
t = "pin"
print(solve(s, t))

Đầu vào

"pipipinnn", "pin"

Đầu ra

True