您的位置:首页 > 其它

Leetcode 38 Sudoku Solver

2015-06-23 10:02 393 查看


Sudoku Solver

class Solution:
# @param {character[][]} board
# @return {void} Do not return anything, modify board in-place instead.
def solveSudoku(self, board):

def check( x, y):
temp = board[x][y]; board[x][y] = '.'
for i in xrange(9):
if board[i][y] == temp: return False
for j in xrange(9):
if board[x][j] == temp: return False
for i in xrange(3):
for j in xrange(3):
if board[(x/3)*3 + i][(y/3)*3 + j] == temp:
return False
board[x][y] = temp
return True

def dfs(board):
for i in xrange(9):
for j in xrange(9):
if board[i][j] == '.':
for k in '123456789':
board[i][j] = k
if check(i, j) and dfs(board):
return True
board[i][j] = '.'
return False
return True

dfs(board)

另一种方法:http://c4fun.cn/blog/2014/03/20/leetcode-solution-02/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: