Ctrl K

Шаг назад на одном отрезке

Средняя
Дана строка text из строчных латинских букв. Ровно один раз выберите непустой отрезок подряд идущих символов и замените в нём каждую букву на предыдущую в алфавите: b → a, c → b и так далее, а a превращается в z. Верните лексикографически наименьшую строку, которую можно получить такой операцией.
Пример 1
text="dbaca" → 'caaca'

Выгоднее всего сдвинуть отрезок db: он станет ca. Захватывать a нельзя — она превратится в z.

Пример 2
text="abcab" → 'aabab'

Первую a трогать незачем, сдвигаем bc → ab.

Пример 3
text="aaa" → 'aaz'

Отрезок обязан быть непустым, а любая a станет z. Меньше всего вреда, если это последняя буква.

Ограничения
  • 1 ≤ len(text) ≤ 3·10⁵
  • text состоит из строчных латинских букв
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиСамое большое число из кусков СредняяКаждая буква по разу СредняяВычеркнуть цифры ради минимума СредняяНаименьшая последовательность по стрелкам СредняяКольцо из разворачиваемых слов Средняя
загружаем Python…
Вход
text="dbaca"
Ожидается
'caaca'

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