Журнал платёжного шлюза Сбера склеен в одну строку log из латиницы и цифр. Повторяющиеся куски — признак зацикленного ретрая.
Верните длину самой длинной подстроки, которая встречается в log не меньше k раз. Вхождения могут перекрываться. Если даже одиночный символ не встречается k раз, верните 0.
В работе: Мониторинг смотрит на 100 КБ журнала за минуту: кусок из 300 символов, повторённый 5 раз, — это один и тот же упавший запрос, а сравнивать все пары подстрок — 10¹⁰ операций.
Пример 1
log = "errAerrBerrA" k = 2
4
«errA» встречается дважды, пятисимвольных повторов нет.
Пример 2
log = "aaaa" k = 3
2
«aa» входит трижды с перекрытием: с позиций 0, 1, 2.
Ограничения
- 1 ≤ длина
log≤ 10⁵ - 2 ≤ k ≤ длина
log - символы — латиница и цифры
- Лимит — 3 с на тест (3000 мс).
print() и console.log() уходят в консоль.
def longest_k_repeat(log, k):
Источник: наша задача на данных Сбера. Условие пересказано своими словами.
Ожидаемый ответ не нужен: покажем, что вернула функция.
Здесь появится результат отправки.