Giả sử ta có chuỗi ký tự s. Chuỗi w gọi là k-repeating nếu w nối k lần là substring của s. Giá trị k-repeating lớn nhất của w là k lớn nhất thỏa mãn. Nếu w không phải substring của s, giá trị là 0. Cho s và w, tìm giá trị k-repeating lớn nhất.
Ví dụ: s = "papaya", w = "pa", kết quả 2 vì "pa" xuất hiện 2 lần trong "papaya".
Giải thuật
Count := s.count(w)- Nếu
Count == 0: trả về 0 - For
itừCountxuống 0:- Nếu
w * itrongs: trả vềi
- Nếu
Ví dụ (Python)
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))
Input
"papaya", "pa"
Output
2