Ctrl K

Опрятная вывеска

Сложная
Вывеска записана строкой banner из строчных латинских букв. Вывеска **опрятная**, если каждая буква в ней стоит в группе хотя бы из трёх одинаковых букв подряд. Например, "kkkmmm" и "ppppqqq" опрятные, а "kkmmm" и "ppppq" — нет. За один шаг можно заменить любую букву на соседнюю по алфавиту: на предыдущую (если это не a) или на следующую (если это не z). Верните опрятную вывеску, которая получается из banner за наименьшее число шагов. Если таких несколько, верните лексикографически наименьшую. Если опрятной вывески не получить никак, верните пустую строку.
Пример 1
banner="abd" → 'bbb'

Все три буквы должны стать одинаковыми. В "aaa" нужно 1 + 3 = 4 шага, в "bbb" — 1 + 0 + 2 = 3, в "ccc" — 2 + 1 + 1 = 4. Дешевле всего "bbb".

Пример 2
banner="zzzaab" → 'zzzaaa'

Хватит одного шага: b превращается в a, и получается "zzzaaa" — две группы по три буквы.

Пример 3
banner="xy" → ''

В строке всего две буквы — группу из трёх не собрать, ответ пустой.

Ограничения
  • 1 ≤ len(banner) ≤ 5 · 10⁴
  • banner состоит из строчных латинских букв
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиШаблон с точкой и звёздочкой СложнаяСамый длинный сбалансированный отрезок скобок СложнаяПодходит ли строка под шаблон СложнаяПеретасовка разрезами СложнаяСколькими способами вычеркнуть Сложная
загружаем Python…
Вход
banner="abd"
Ожидается
'bbb'

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