怎么用python实现上面的问题
时间: 2023-08-02 21:31:33 浏览: 40
好的,以下是一个 Python 函数实现,可以用来检查一个填数后的 9×9 数独是否是合法解:
```python
def check_sudoku(sudoku):
# 检查每行是否有重复数字
for row in sudoku:
if len(set(row)) != 9:
return 0
# 检查每列是否有重复数字
for col in range(9):
if len(set([sudoku[row][col] for row in range(9)])) != 9:
return 0
# 检查每个 3x3 宫格是否有重复数字
for i in range(0, 9, 3):
for j in range(0, 9, 3):
block = []
for row in range(i, i + 3):
for col in range(j, j + 3):
block.append(sudoku[row][col])
if len(set(block)) != 9:
return 0
# 如果通过上述验证,则说明是合法解
return 1
```
这个函数的参数 `sudoku` 是一个 9×9 的二维数组,表示填数后的数独。函数会依次检查每行、每列和每个 3x3 宫格,是否存在重复数字。如果存在重复数字,则说明不是合法解,返回 0;否则说明是合法解,返回 1。