Ctrl K

Дешёвая строка на алфавитном круге

Средняя
Буквы от a до z расставлены по кругу: за z снова идёт a. Заменить одну букву на другую стоит столько шагов, сколько их между ними по кругу в более короткую сторону. Например, c → a стоит 2, а y → a — тоже 2 (через z). Дана строка text и бюджет budget. Можно заменить любые буквы text, лишь бы общая стоимость всех замен не превышала budget. Верните лексикографически наименьшую строку, которую можно так получить.
Пример 1
text="ybcz", budget=4 → 'aabz'

y → a стоит 2 шага (через z), b → a — ещё 1. Остаётся 1 шаг: c становится b. На z бюджета уже нет.

Пример 2
text="hello", budget=20 → 'aaclo'

h → a за 7, e → a за 4, остаётся 9. До a от l нужно 11, поэтому l сдвигаем на 9 вниз — получается c.

Пример 3
text="mno", budget=0 → 'mno'

Бюджет нулевой — строка не меняется.

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

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