【Leetcode/python/Hard/37】Sudoku Solver
阿新 • • 發佈:2018-12-10
題目描述
基本思路
DFS必須得掌握啊
實現程式碼
class Solution: def solveSudoku(self, board): """ :type board: List[List[str]] :rtype: void Do not return anything, modify board in-place instead. """ def isValid(x,y): tmp=board[x][y] board[x][y]='D' for i in range(9): if board[i][y]==tmp: return False for i in range(9): if board[x][i]==tmp: return False for i in range(3): for j in range(3): if board[(x//3)*3+i][(y//3)*3+j]==tmp: return False board[x][y]=tmp return True def dfs(board): for i in range(9): for j in range(9): if board[i][j]=='.': for k in '123456789': board[i][j]=k if isValid(i,j) and dfs(board): return True board[i][j]='.' return False return True dfs(board)