Sudoku Solver
Last updated
Last updated
Write a program to solve a Sudoku puzzle by filling the empty cells.
A sudoku solution must satisfy all of the following rules:
Each of the digits 1-9
must occur exactly once in each row.
Each of the digits 1-9
must occur exactly once in each column.
Each of the the digits 1-9
must occur exactly once in each of the 9 3x3
sub-boxes of the grid.
Empty cells are indicated by the character '.'
.
A sudoku puzzle...
...and its solution numbers marked in red.
Note:
The given board contain only digits 1-9
and the character '.'
.
You may assume that the given Sudoku puzzle will have a single unique solution.
The given board size is always 9x9
.
分析
dfs或者brute force,就是对于每个格子,loop 1-9尝试放入,然后下一步dfs,可以就返回true,不可以就reset cell
注意这里先check再放入,为了后面check方便,不污染原matrix
string.digits去掉0,本身就是char,不需要str(i)
2种块坐标表达法
x,y都是到block的初始点,然后+offset 0-3