You are given a lock with '0' through '9'.
The wheels can rotate freely and wrap around cyclically; turning '9' forward leads to '0', and turning '0’ backward leads to '9'.
Each move consists of rotating one wheel by one position (either forward or backward).
The lock starts from the initial state "0000".
You are also given a list of deadends, where each string represents a lock position that is blocked; if the lock reaches any of these positions, it becomes stuck and can no longer be turned.
Your goal is to reach a given target combination by performing the minimum number of moves, starting from "0000" and avoiding all dead ends.
If it is impossible to reach the target, return -1.
Constraints:
deadends.length
deadends[i].length
target.length
target will not be in the list, deadends.
Both target and deadends[i] consist of digits only.
You are given a lock with '0' through '9'.
The wheels can rotate freely and wrap around cyclically; turning '9' forward leads to '0', and turning '0’ backward leads to '9'.
Each move consists of rotating one wheel by one position (either forward or backward).
The lock starts from the initial state "0000".
You are also given a list of deadends, where each string represents a lock position that is blocked; if the lock reaches any of these positions, it becomes stuck and can no longer be turned.
Your goal is to reach a given target combination by performing the minimum number of moves, starting from "0000" and avoiding all dead ends.
If it is impossible to reach the target, return -1.
Constraints:
deadends.length
deadends[i].length
target.length
target will not be in the list, deadends.
Both target and deadends[i] consist of digits only.