您的位置:首页 > 编程语言 > Python开发

Leetcode||37. Sudoku Solver

2017-10-13 16:40 435 查看
Write a program to solve a Sudoku puzzle by filling the empty cells.

Empty cells are indicated by the character 
'.'
.

You may assume that there will be only one unique solution.



A sudoku puzzle...



...and its solution numbers marked in red.

这题呢,一眼望去,用深搜肯定是没问题的,问题是,我可能是用了假的数据……一直在编译的时候报错

class Solution(object):
def solveSudoku(self, board):
"""
:type board: List[List[str]]
:rtype: void Do not return anything, modify board in-place instead.
"""
self.dfs(board)
def valid(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.valid(row, col, board) and self.dfs(board):
return True
board[row][col] = '.'
return False
return True
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python leetcode