Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Kiểm tra xem chuỗi có thể rỗng bằng cách xóa đệ quy chuỗi con cho trước hay không trong Python


Giả sử chúng ta có hai chuỗi s và t. Có thể xóa t khỏi s bao nhiêu lần tùy ý, và t chỉ xuất hiện một lần tại một thời điểm. Cần kiểm tra xem s có thể trở thành rỗng bằng cách xóa t nhiều lần hay không.

Ví dụ, s = "pipipinnn", t = "pin", đầu ra True vì: xóa "pin" từ "pipipinnn" -> "pipinn", xóa tiếp -> "pin", xóa tiếp -> rỗng.

Các bước giải quyết:

  • Trong khi độ dài s > 0:
    • position := vị trí đầu tiên của t trong s.
    • Nếu position == -1 (không tìm thấy), thoát vòng lặp.
    • s := xóa t khỏi s một lần (replace 1 lần).
  • Trả về True nếu độ dài s == 0, ngược lại False.

Xem ví dụ dưới đây để 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