Ctrl K

Самый длинный повтор

Сложная
Дана строка text из строчных латинских букв. Назовём повтором непрерывный фрагмент строки, который встречается в ней хотя бы дважды. Вхождения могут перекрываться. Верните самый длинный повтор. Если повторов максимальной длины несколько, верните тот, второе вхождение которого начинается раньше всего, — то есть тот, который первым «повторяется», если читать строку слева направо. Если ни один фрагмент не повторяется, верните пустую строку.
Пример 1
text='abracadabra' → 'abra'

Фрагмент «abra» встречается в начале и в конце строки, а ни один фрагмент длины 5 не повторяется.

Пример 2
text='aaaa' → 'aaa'

«aaa» встречается с позиции 0 и с позиции 1 — вхождения могут перекрываться.

Пример 3
text='xyz' → ''

Все буквы разные, повторов нет — ответ пустая строка.

Ограничения
  • 2 ≤ len(text) ≤ 3·10⁴
  • text состоит из строчных латинских букв
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиХвосты, повторяющие начало СложнаяСамый длинный повтор СредняяСамый длинный общий участок маршрутов СложнаяПервое окно с нужным отпечатком СложнаяСлово рядом с якорем Сложная
загружаем Python…
Вход
text='abracadabra'
Ожидается
'abra'

«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 119 тестов на сервере, включая скрытые.