我们可以对数独方格进行行、列和子宫的检查来确定它是否有效。以下是一个示例代码,可以用来检查一个 9*9 的数独方格是否有效:
def is_valid_sudoku(board):
"""
:type board: List[List[str]]
:rtype: bool
"""
# Check row
for i in range(9):
row = set()
for j in range(9):
if board[i][j] != '.':
if board[i][j] in row:
return False
row.add(board[i][j])
# Check column
for i in range(9):
col = set()
for j in range(9):
if board[j][i] != '.':
if board[j][i] in col:
return False
col.add(board[j][i])
# Check sub-boxes
for i in range(0, 9, 3):
for j in range(0, 9, 3):
box = set()
for m in range(i, i+3):
for n in range(j, j+3):
if board[m][n] != '.':
if board[m][n] in box:
return False
box.add(board[m][n])
return True
以上代码会遍历整个数独方格,并对每行、每列和每个子宫进行检查。如果发现重复的数字,则会返回 False。如果检查通过,则会返回 True。