Задача 17: Откройте замок

Напишите определение функции openLock(deadends, target), которая принимает:

  • deadends — список строк, представляющих мёртвые комбинации замка. Если замок показывает одну из этих комбинаций, его колёса перестают вращаться.
  • target — строка, представляющая комбинацию, которая откроет замок.

Функция должна вернуть минимальное количество вращений, необходимых для открытия замка, или -1, если это невозможно.


Примеры

Пример 1

Ввод:

deadends = ["0201","0101","0102","1212","2002"]
target = "0202"

Вывод:

6

Объяснение:
Последовательность валидных шагов:

  • "0000" → "1000" → "1100" → "1200" → "1201" → "1202" → "0202".

Шаги вида "0000" → "0001" → "0002" → "0102" → "0202" недопустимы, так как комбинация "0102" — мёртвая.


Пример 2

Ввод:

deadends = ["8888"]
target = "0009"

Вывод:

1

Объяснение:
Можно повернуть последнее колесо назад:

  • "0000" → "0009".

Пример 3

Ввод:

deadends = ["8887","8889","8878","8898","8788","8988","7888","9888"]
target = "8888"

Вывод:

-1

Объяснение:
Целевую комбинацию "8888" невозможно достичь, не попав в одну из мёртвых комбинаций.

0

Комментарии

xsnm_avatar
xsnm
,
4 месяца, 29 дней назад

def openLock(deadends, target):
    return 0
т.к замок может стоять на коде который его открывает.

0

Вы должны Войти или Зарегистрироваться чтобы оставлять комментарии