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
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
相关文章推荐
- leetcode 36. Valid Sudoku 37. Sudoku Solver
- LeetCode 37. Sudoku Solver(数独Ⅱ)
- leetcode题解c++ | 37. Sudoku Solver
- LeetCode 37. Sudoku Solver
- [LeetCode]37. Sudoku Solver
- LeetCode37 Sudoku Solver
- LeetCode 37 Sudoku Solver(求解数独)(*)
- [Leetcode] 37. Sudoku Solver
- leetcode 37. Sudoku Solver
- python实现 LeetCode37——Sudoku Solver
- 【LeetCode】37. Sudoku Solver
- LeetCode 37 - Sudoku Solver
- LeetCode(37) Sudoku Solver
- LeetCode: 37. Sudoku Solver
- Leetcode-37-Sudoku Solver(Hard)
- [leetcode-37]Sudoku Solver(java)
- LeetCode 37 Sudoku Solver
- leetcode 37 Sudoku Solver
- LeetCode(37) Sudoku Solver
- LeetCode 37. Sudoku Solver