美文网首页
37. Sudoku Solver

37. Sudoku Solver

作者: April63 | 来源:发表于2018-05-17 20:41 被阅读0次

    明明是一样的代码,但是。。。我的为什么有bug,算了,没空调,先贴上别人的吧:

    class Solution:
        # @param board, a 9x9 2D array
        # Solve the Sudoku by modifying the input board in-place.
        # Do not return any value.
        def check(self, x, y, board):
            tmp = board[x][y]
            board[x][y] = '.'
            for row in range(9):
                if board[row][y] == tmp:
                    return False
            for col in range(9):
                if board[x][col] == tmp:
                    return False
            for row in range(3):
                for col in range(3):
                    if board[(x / 3) * 3 + row][(y / 3) * 3 + col] == tmp:
                        return False
            board[x][y] = tmp
            return True
        def dfs(self, board):
            for row in range(9):
                for col in range(9):
                    if board[row][col] == '.':
                        for char in '123456789':
                            board[row][col] = char
                            if self.check(row, col, board) and self.dfs(board):
                                return True
                            board[row][col] = '.'
                        return False
            return True
        def solveSudoku(self, board):
            self.dfs(board)
    

    相关文章

      网友评论

          本文标题:37. Sudoku Solver

          本文链接:https://www.haomeiwen.com/subject/zapidftx.html