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