Войти Регистрация
Алгоритмы

148. Коды ячеек постамата без двух одинаковых цифр подряд

Средняя

Для партии ячеек выдали набор цифр digits (строка, цифры могут повторяться). Код ячейки — перестановка всех этих цифр, в которой две соседние цифры не совпадают: курьеры ошибаются на кодах вроде 1123.

Верните все разные коды по возрастанию (как строки). Если подходящего кода нет — пустой список.

В работе: Генерация кодов для ячеек постамата Яндекс Маркета: цифры на клавиатуре стираются неравномерно, и набор задают заранее.

Пример 1

Ввод
digits = "1123"
Вывод
["1213", "1231", "1312", "1321", "2131", "3121"]

Из 12 разных перестановок подходят 6: 1213, 1231, 1312, 1321, 2131, 3121.

Пример 2

Ввод
digits = "555"
Вывод
[]

Без одинаковых соседей не расставить.

Ограничения

  • 1 ≤ длина digits ≤ 9
  • digits — только цифры 0–9
  • Лимит — 2 с на тест (2000 мс).
Как вызывается ваш код Читать ввод и печатать ответ не нужно: мы вызываем функцию на каждом тесте и сравниваем то, что она вернула. print() и console.log() уходят в консоль.
def locker_codes(digits):
Перебор с возвратомПерестановкиОтсеченияцельпо числу ответов

Источник: наша задача на данных Яндекса. Условие пересказано своими словами.