用python改改数字
class Solution(object):
def solveSudoku(self, board):
def isvaild(i,j):
for m in range(9):
if m!=i and board[m][j]==board[i][j]:
return False
for n in range(9):
if n!=j and board[i][n]==board[i][j]:
return False
for m in range(i//3*3,i//3*3+3):
for n in range(j//3*3,j//3*3+3):
if m!=i and n!=j and board[m][n]==board[i][j]:
return False
return True
def f(a,b,board):
for i in range(a,9):
for j in range(b,9):
if board[i][j]=='.':
for c in '123456789':
board[i][j]=c
if isvaild(i,j):
if f(a,b,board):return True
else: board[i][j]='.'
else: board[i][j]='.'
return False
return True
f(0,0,board)
return board
#%%
s=Solution()
board=[['5','3','.','.','7','.','.','.','.'],
['6','.','.','1','9','5','.','.','.'],
['.','9','8','.','.','.','.','.','.'],
['8','.','.','.','6','.','.','.','3'],
['4','.','.','8','.','3','.','.','1'],
['7','.','.','.','2','.','.','.','6'],
['.','6','.','.','.','.','2','8','.'],
['.','.','.','4','1','9','.','.','5'],
['.','.','.','.','8','.','.','7','9']]
print('按原样输出:')
print(s.solveSudoku(board))
print('格式化输出:')
#格式化输出
a=s.solveSudoku(board)
for x in range(9):
for y in range(9):
print(a[x][y], end=" ")
print()