Ctrl K

Все коды за один набор

Сложная
Кодовый замок открывается кодом из length цифр, каждая цифра — от 0 до digits - 1. Замок не ждёт подтверждения: после каждой нажатой цифры он сверяет с кодом последние length набранных цифр и открывается при совпадении. Код неизвестен. Найдите строку минимальной длины, при наборе которой замок гарантированно откроется, какой бы код ни был задан, — то есть каждый из возможных кодов встречается в ней как подстрока. Таких строк обычно несколько. Верните ту, которая, если читать её справа налево, лексикографически наименьшая: сравниваются последние символы, при равенстве — предпоследние и так далее.
Пример 1
length=1, digits=3 → '210'

Код — одна цифра от 0 до 2, значит, надо набрать все три цифры. Из шести таких строк, если читать с конца, меньше всех "210" (с конца это "012").

Пример 2
length=2, digits=2 → '01100'

Кратчайшие подходящие строки имеют длину 5: "00110", "01100", "10011", "11001". Если читать с конца, получаются "01100", "00110", "11001", "10011" — наименьшая "00110", поэтому ответ "01100".

Пример 3
length=3, digits=1 → '000'
Ограничения
  • 1 ≤ length ≤ 4
  • 1 ≤ digits ≤ 10
  • digits^length ≤ 4096
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиМаршрут по всем посадочным СложнаяЦепочка из костяшек СложнаяПорядок букв по словарю СложнаяСамый длинный подъём по карте СложнаяШарик и лунка Сложная
загружаем Python…
Вход
length=1, digits=3
Ожидается
'210'

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