Sudoku Solver

Write a program to solve a Sudoku puzzle by filling the empty cells.

A sudoku solution must satisfy all of the following rules:

  1. Each of the digits 1-9 must occur exactly once in each row.

  2. Each of the digits 1-9 must occur exactly once in each column.

  3. 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

Last updated

Was this helpful?