《python算法与数据结构2000讲》0752. 打开转盘锁
- 标签:广度优先搜索
- 难度:中等
题目大意
描述:有一把带有四个数字的密码锁,每个位置上有 0
~ 9
共 10
个数字。每次只能将其中一个位置上的数字转动一下。可以向上转,也可以向下转。比如:1 -> 2
、2 -> 1
。
密码锁的初始数字为:0000
。现在给定一组表示死亡数字的字符串数组 deadends
,和一个带有四位数字的目标字符串 target
。
如果密码锁转动到 deadends
中任一字符串状态,则锁就会永久锁定,无法再次旋转。
要求:给出使得锁的状态由 0000
转动到 target
的最小的选择次数。如果无论如何不能解锁,返回 -1
。
说明:
- 1 ≤ d e