Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- func checkLock(deadLocker []string, a string) bool {
- for _, s := range deadLocker {
- if a == s {
- return false
- }
- }
- return true
- }
- func Solution(startState string, endState string, N int, deadLocker []string) int {
- count := 0
- flag := true
- for i := 0; i < len(startState); i++ {
- diff := int(endState[i]) - int(startState[i])
- if diff != 0 {
- for diff != 0 {
- if diff > 0 {
- diff--
- startState = startState[:i] + string(startState[i]+1) + startState[i+1:]
- } else {
- diff++
- startState = startState[:i] + string(startState[i]-1) + startState[i+1:]
- }
- if checkLock(deadLocker, startState) {
- count++
- } else {
- flag = false
- break
- }
- }
- }
- }
- if flag {
- return count
- } else {
- return -1
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement