Giả sử chúng ta có một dãy ký tự được gọi là s, chúng ta nói một xâu w là xâu lặp k nếu w được nối k lần là một xâu con của dãy. Giá trị lặp lại k lớn nhất của w sẽ là giá trị k cao nhất trong đó w là k lặp theo thứ tự. Và nếu w không phải là chuỗi con của dãy đã cho, giá trị lặp lại k lớn nhất của w là 0. Vì vậy, nếu chúng ta có s và w, chúng ta phải tìm giá trị lặp lại k lớn nhất của w trong dãy.
Vì vậy, nếu đầu vào giống như s ="đu đủ" w ="pa", thì đầu ra sẽ là 2 vì w ="pa" xuất hiện hai lần trong "đu đủ".
Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -
-
Đếm:=số w có trong s
-
nếu Count giống 0 thì
-
trả về 0
-
-
đối với tôi trong phạm vi Đếm đến 0, giảm đi 1, thực hiện
-
nếu tôi lặp lại w trong s, thì
-
trả lại tôi
-
-
Ví dụ (Python)
Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -
def solve(s, w): Count=s.count(w) if Count==0: return 0 for i in range(Count,0,-1): if w*i in s: return i s = "papaya" w = "pa" print(solve(s, w))
Đầu vào
"papaya", "pa"
Đầu ra
2