解题思路
按行
按列
按九宫
检查是不是冲突
36. 有效的数独
代码
class Solution:
def isValidSudoku(self, board: List[List[str]]) -> bool:
# 不一定可解
hx_row = [
{}, {}, {},
{}, {}, {},
{}, {}, {},
]
hx_col = [
{}, {}, {},
{}, {}, {},
{}, {}, {},
]
hx_grid = [
[{}, {}, {}],
[{}, {}, {}],
[{}, {}, {}],
]
for i in range(len(board)):
for j in range(len(board[0])):
e = board[i][j]
if e == '.': continue
if e in hx_row[i]:
return False
else:
hx_row[i][e] = True
if e in hx_col[j]:
return False
else:
hx_col[j][e] = True
if e in hx_grid[i//3][j//3]:
return False
else:
hx_grid[i//3][j//3][e] = True
return True