数独求解器给出 Python 的部分解:为什么?

Sudoku Solver gives Partial Solution in Python: Why?

我正在尝试解决 leetcode 数独求解器问题 (Problem description here)。但是我的代码只给出了部分解决方案。

class Solution(object):
    def solveSudoku(self, board):
        """
        :type board: List[List[str]]
        :rtype: None Do not return anything, modify board in-place instead.
        """
        def isValid(board, row, col, c):
          nRow = 3*(row//3)
          nCol = 3*(col//3)

          for i in range(9):
            #Check Row
            if board[row][i]==c:
              return False
            #Check Column
            if board[i][col]==c:
              return False
            #Check Grid
            if board[nRow+(i//3)][nCol+(i%3)]==c:
              return False
          return True


        def solve(board):
          for i in range(len(board)):
            for j in range(len(board)):
              if board[i][j]==".":
                for c in ["1","2","3","4","5","6","7","8","9"]:
                  if isValid(board, i, j, c): 
                    board[i][j]=c
                    if solve(board):
                        return True
                    board[i][j]=="."
                return False
          return True
        solve(board)
        
        
if __name__=='__main__':
  board1 = [["5","3",".",".","7",".",".",".","."],
            ["6",".",".","1","9","5",".",".","."],
            [".","9","8",".",".",".",".","6","."],
            ["8",".",".",".","6",".",".",".","3"],
            ["4",".",".","8",".","3",".",".","1"],
            ["7",".",".",".","2",".",".",".","6"],
            [".","6",".",".",".",".","2","8","."],
            [".",".",".","4","1","9",".",".","5"],
            [".",".",".",".","8",".",".","7","9"]]

  Solution().solveSudoku(board1)
  print(board1)

您在重置位置值时使用比较运算符 (==) 而不是赋值 (=):

board[i][j]=="." 

应该是:

board[i][j]="."