请你判断一个9X9的数独是否有效。只需要根据以下规则,验证已经填入的数字是否有效即可。← < 数字1-9在每一行只能出现一次。← 数字1-9在每一列只能出现一次。← 数字1-9在每一个以粗实线分隔的3x3宫内只能出现一次Python代码
时间: 2023-12-03 16:46:37 浏览: 27
以下是判断一个9x9数独是否有效的Python代码:
```python
class Solution:
def isValidSudoku(self, board: List[List[str]]) -> bool:
# 判断每一行是否符合要求
for i in range(9):
row = [x for x in board[i] if x != '.']
if len(row) != len(set(row)):
return False
# 判断每一列是否符合要求
for j in range(9):
col = [board[i][j] for i in range(9) if board[i][j] != '.']
if len(col) != len(set(col)):
return False
# 判断每一个3x3宫是否符合要求
for i in range(0, 9, 3):
for j in range(0, 9, 3):
block = [board[x][y] for x in range(i, i+3) for y in range(j, j+3) if board[x][y] != '.']
if len(block) != len(set(block)):
return False
return True
```
该函数接收一个9x9的二维数组 `board` 作为输入,其中 `board[i][j]` 表示数独中第i行第j列的数字。函数首先分别判断每一行、每一列和每一个3x3宫是否符合要求。如果符合要求,则返回 `True`,否则返回 `False`。