Ctrl K

Однобуквенный кусок, встреченный трижды: длинная строка

Средняя
Дана строка text из строчных латинских букв. Назовём её подстроку (непрерывный непустой кусок) однобуквенной, если все символы в ней одинаковые — например, "kkk" или "q", но не "kq". Найдите длину самой длинной однобуквенной подстроки, которая встречается в text хотя бы три раза. Вхождения могут перекрываться: в "bbbb" подстрока "bb" встречается трижды — с позиций 0, 1 и 2. Если ни одна однобуквенная подстрока не встречается трижды, верните -1. Строка может быть очень длинной, так что перебор всех подстрок не подойдёт.
Пример 1
text='xxxyxxyx' → 2

"x" встречается 6 раз, а "xx" — только трижды: дважды внутри "xxx" и один раз в середине. "xxx" есть лишь один раз, поэтому ответ 2.

Пример 2
text='mnoonm' → -1

Каждая буква встречается только дважды, трёх одинаковых однобуквенных подстрок нет.

Пример 3
text='ttttttt' → 5
Ограничения
  • 3 ≤ len(text) ≤ 5 · 10⁵
  • text состоит из строчных латинских букв
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиОднобуквенный кусок, встреченный трижды СредняяБуквы поровну СредняяТройки без повторов ЛёгкаяСамый длинный фрагмент без повторов СредняяОтрезок из двух букв Средняя
загружаем Python…
Вход
text='xxxyxxyx'
Ожидается
2

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