Giả sử chúng ta có hai chuỗi s và t, chúng ta phải tìm xem chuỗi s có thể được nối với nhau bao nhiêu lần để tạo ra t. Nếu chúng ta không thể tạo t bằng s, thì trả về -1.
Vì vậy, nếu đầu vào là s ="tom" t ="tomtomtom", thì đầu ra sẽ là 3 vì chúng ta có thể ghép "tom" 3 lần để được "tomtomtom".
Để 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 t không chia hết cho kích thước của s, thì
- trả về -1
- cnt:=thương số của (kích thước của t / kích thước của s)
- s:=nối s cnt số lần
- nếu s giống với t, thì
- trả về cnt
- trả về -1
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): if(len(t) % len(s) != 0): return -1; cnt = int(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