Ctrl K

Самый маленький код замка

Средняя
На кодовом замке строка цифр digits чётной длины. С ней разрешено сколько угодно раз и в любом порядке делать два действия: - **Прибавить:** к каждой цифре на нечётной позиции (нумерация с нуля) прибавить step; после 9 счёт идёт снова с 0. Например, при step = 5 строка 3456 превращается в 3951. - **Сдвинуть:** циклически сдвинуть строку вправо на shift позиций. Например, при shift = 1 строка 3456 превращается в 6345. Верните лексикографически наименьшую строку, которую можно получить такими действиями (в том числе исходную, если ничего не делать).
Пример 1
digits="1938", step=1, shift=2 → '1039'

Сдвиг на 2 даёт только 1938 и 3819, нечётные позиции 1 и 3 крутятся вместе. Для 1938 лучше прибавить 1: 1039. Любой вариант 3819 начинается с 3, это хуже. Ответ 1039.

Пример 2
digits="95", step=5, shift=1 → '04'

95 → прибавить: 90 → сдвинуть: 09 → прибавить: 04. Меньше 04 получить нельзя: на первом месте всегда 0 или 5, на втором — 4 или 9.

Пример 3
digits="000000", step=3, shift=4 → '000000'
Ограничения
  • 2 ≤ len(digits) ≤ 100
  • len(digits) чётная
  • digits состоит из цифр от 0 до 9
  • 1 ≤ step ≤ 9
  • 1 ≤ shift ≤ len(digits) − 1
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиЦепочки отношений СредняяСклеить карточки контактов СредняяЦепочки синонимов СредняяПерестановки по связям СредняяНаименьшая общая территория Средняя
загружаем Python…
Вход
digits="1938", step=1, shift=2
Ожидается
'1039'

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