Ctrl K

Хвосты, повторяющие начало

Сложная
Дана строка text. Возьмите каждый её непустой хвост (суффикс) — от всей строки до последнего символа — и найдите длину самого длинного общего префикса этого хвоста и всей строки text. Верните сумму этих длин по всем хвостам. Прямое сравнение каждого хвоста с началом работает за O(n²) — попробуйте быстрее.
Пример 1
text="abcab" → 7

Хвосты: abcab совпадает с началом на 5 символов, bcab — на 0, cab — на 0, ab — на 2, b — на 0. Итого 7.

Пример 2
text="qqq" → 6

Хвосты qqq, qq и q целиком совпадают с началом строки: 3 + 2 + 1 = 6.

Пример 3
text="xyz" → 3
Ограничения
  • 1 ≤ len(text) ≤ 10⁵
  • text состоит из строчных латинских букв
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиСамый длинный повтор СложнаяСлово рядом с якорем СложнаяФраза из начал слов: длинная версия СложнаяСамый длинный повтор СредняяЯкорь рядом с напарником Средняя
загружаем Python…
Вход
text="abcab"
Ожидается
7

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