Ctrl K

Числа с рабочих клавиш

Сложная
На старом кодовом замке работают не все кнопки: исправны только цифры из списка keys (каждая — строка из одного символа, список отсортирован по возрастанию). Каждую исправную кнопку можно нажимать сколько угодно раз. Сколько положительных целых чисел, не превосходящих limit, можно набрать на таком замке? Например, при keys = ["1", "4"] можно набрать 1, 4, 11, 14, 41, 44, 111 и так далее.
Пример 1
keys=["2", "8"], limit=30 → 4

Подходят 2, 8, 22, 28. Числа 82 и 88 уже больше 30.

Пример 2
keys=["3", "6", "9"], limit=500 → 21

3 однозначных, 9 двузначных и трёхзначные, начинающиеся на 3, — ещё 9. Итого 21.

Пример 3
keys=["5"], limit=4 → 0

Самое маленькое число, которое можно набрать, — 5, а оно больше 4.

Ограничения
  • 1 ≤ len(keys) ≤ 9
  • Каждый элемент keys — одна цифра от 1 до 9
  • Цифры в keys различны и идут по возрастанию
  • 1 ≤ limit ≤ 10⁹
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиПроверка контрольной по арифметике СложнаяФраза из начал слов: длинная версия СложнаяСлова, спрятанные в тексте СредняяЦель из начал слов СредняяВсе способы расставить пробелы Сложная
загружаем Python…
Вход
keys=["2", "8"], limit=30
Ожидается
4

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