pass 36 easy

This commit is contained in:
Mhrooz 2024-05-24 23:17:09 +02:00
parent 3630da98a0
commit 713e1c9cea

74
36-240525-pass/main.py Normal file
View 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))