parameters: (self, board)
return_statement: return -1
docstring: :type board: List[List[int]]
          :rtype: int
docstring_summary: :type board: List[List[int]]
          :rtype: int
docstring_tokens: : type board : List [ List [ int ]] : rtype : int
function: def slidingPuzzle(self, board):
          """
          :type board: List[List[int]]
          :rtype: int
          """
          start = self.to_state(board)
          target = 123450
  
          q = collections.deque()
          q.append(start)
          visited = set([start])
          steps = 0
  
          while q:
              size = len(q)
              for i in range(size):
                  state = q.popleft()
                  if state == target:
                      return steps
  
                  for neighbor in self.get_neighbors(state):
                      if neighbor not in visited:
                          visited.add(neighbor)
                          q.append(neighbor)
  
              steps += 1
  
          return -1
function_tokens: def slidingPuzzle ( self , board ) : start = self . to_state ( board ) target = 123450 q = collections . deque ( ) q . append ( start ) visited = set ( [ start ] ) steps = 0 while q : size = len ( q ) for i in range ( size ) : state = q . popleft ( ) if state == target : return steps for neighbor in self . get_neighbors ( state ) : if neighbor not in visited : visited . add ( neighbor ) q . append ( neighbor ) steps += 1 return - 1