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))