pass 36 easy
This commit is contained in:
parent
3630da98a0
commit
713e1c9cea
74
36-240525-pass/main.py
Normal file
74
36-240525-pass/main.py
Normal file
@ -0,0 +1,74 @@
|
||||
class Solution:
|
||||
def isValidSudoku(self, board: list[list[str]]) -> bool:
|
||||
plates = []
|
||||
for l in board:
|
||||
plates.append([])
|
||||
for ch_num in l:
|
||||
if ch_num.isalnum():
|
||||
num = int(ch_num[0])
|
||||
else:
|
||||
num = -1
|
||||
plates[-1].append(num)
|
||||
def judge_1(plates, i, j):
|
||||
t = plates[i][j]
|
||||
for idx, num in enumerate(plates[i]):
|
||||
if idx == j: continue
|
||||
if num == t: return False
|
||||
return True
|
||||
|
||||
def judge_2(plates, i, j):
|
||||
t = plates[i][j]
|
||||
l = []
|
||||
for idx in range(0, 9):
|
||||
l.append(plates[idx][j])
|
||||
for idx, num in enumerate(l):
|
||||
if idx == i: continue
|
||||
if num == t: return False
|
||||
return True
|
||||
|
||||
def judge_3(plates, i, j):
|
||||
row = i // 3 * 3
|
||||
col = j // 3 * 3
|
||||
l = []
|
||||
for idx1 in range(row, row + 3):
|
||||
for idx2 in range(col, col + 3):
|
||||
if idx1 == i and idx2 ==j: continue
|
||||
l.append(plates[idx1][idx2])
|
||||
for idx,num in enumerate(l):
|
||||
if num == plates[i][j]:
|
||||
return False
|
||||
return True
|
||||
|
||||
for i in range(0, 9):
|
||||
for j in range(0, 9):
|
||||
if plates[i][j] == -1: continue
|
||||
if not judge_1(plates, i, j):
|
||||
return False
|
||||
if not judge_2(plates, i, j):
|
||||
return False
|
||||
if not judge_3(plates, i, j):
|
||||
return False
|
||||
return True
|
||||
|
||||
board = [["5","3",".",".","7",".",".",".","."]
|
||||
,["6",".",".","1","9","5",".",".","."]
|
||||
,[".","9","8",".",".",".",".","6","."]
|
||||
,["8",".",".",".","6",".",".",".","3"]
|
||||
,["4",".",".","8",".","3",".",".","1"]
|
||||
,["7",".",".",".","2",".",".",".","6"]
|
||||
,[".","6",".",".",".",".","2","8","."]
|
||||
,[".",".",".","4","1","9",".",".","5"]
|
||||
,[".",".",".",".","8",".",".","7","9"]]
|
||||
|
||||
sol = Solution()
|
||||
print(sol.isValidSudoku(board=board))
|
||||
board = [["8","3",".",".","7",".",".",".","."]
|
||||
,["6",".",".","1","9","5",".",".","."]
|
||||
,[".","9","8",".",".",".",".","6","."]
|
||||
,["8",".",".",".","6",".",".",".","3"]
|
||||
,["4",".",".","8",".","3",".",".","1"]
|
||||
,["7",".",".",".","2",".",".",".","6"]
|
||||
,[".","6",".",".",".",".","2","8","."]
|
||||
,[".",".",".","4","1","9",".",".","5"]
|
||||
,[".",".",".",".","8",".",".","7","9"]]
|
||||
print(sol.isValidSudoku(board=board))
|
Loading…
Reference in New Issue
Block a user