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

Kiểm tra xem chuỗi có thể lặp lại để tạo thành chuỗi khác hay không trong Python


Giả sử chúng ta có hai chuỗi s và t, cần tìm số lần nối s để tạo ra t. Nếu không thể tạo ra t từ s, trả về -1.

Ví dụ, s = "tom", t = "tomtomtom", đầu ra 3 vì nối "tom" 3 lần được "tomtomtom".

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

  • Nếu độ dài t không chia hết cho độ dài s, trả về -1.
  • cnt := len(t) // len(s).
  • s := s * cnt (nối s cnt lần).
  • Nếu s == t, trả về cnt, ngược lại -1.

Xem ví dụ dưới đây để hiểu rõ hơn:

Ví dụ

def solve(s, t):
    if len(t) % len(s) != 0:
        return -1
    cnt = len(t) // len(s)
    s = s * cnt
    if s == t:
        return cnt
    return -1

s = "tom"
t = "tomtomtom"
print(solve(s, t))

Đầu vào

"tom", "tomtomtom"

Đầu ra

3