Программа курса:
Внимание! Решать задачи может только авторизованный
пользователь. Пройдите регистрацию на сайте.
Задача 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" невозможно достичь, не попав в одну из мёртвых комбинаций.
xsnm
,def openLock(deadends, target):
return 0
т.к замок может стоять на коде который его открывает.