python 有效的数独,代码实现
时间: 2023-10-17 13:04:03 浏览: 47
以下是Python实现有效数独的代码:
```python
class Solution:
def isValidSudoku(self, board: List[List[str]]) -> bool:
# 初始化三个字典
rows = [{} for i in range(9)]
cols = [{} for i in range(9)]
boxes = [{} for i in range(9)]
# 遍历数独矩阵
for i in range(9):
for j in range(9):
num = board[i][j]
if num != '.':
num = int(num)
box_index = (i // 3) * 3 + j // 3
# 判断是否在行、列、九宫格中出现过
rows[i][num] = rows[i].get(num, 0) + 1
cols[j][num] = cols[j].get(num, 0) + 1
boxes[box_index][num] = boxes[box_index].get(num, 0) + 1
if rows[i][num] > 1 or cols[j][num] > 1 or boxes[box_index][num] > 1:
return False
return True
```
思路:
遍历数独矩阵,使用三个字典分别记录每一行、每一列、每一个九宫格中出现的数字及其出现次数,如果出现次数超过一次,则不是有效数独,返回False;如果遍历完整个矩阵都没有出现重复数字,则是有效数独,返回True。