-
Notifications
You must be signed in to change notification settings - Fork 36
Expand file tree
/
Copy pathvalid-sudoku.py
More file actions
28 lines (27 loc) · 934 Bytes
/
valid-sudoku.py
File metadata and controls
28 lines (27 loc) · 934 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#https://leetcode.com/problems/valid-sudoku/
class Solution:
def isValidSudoku(self, board):
row = {i:set() for i in range(9)}
col = {i:set() for i in range(9)}
box = {i:set() for i in range(9)}
for i in range(9):
for j in range(9):
# skip '.'
if board[i][j] == '.':
continue
# check row
if board[i][j] in row[i]:
return False
else:
row[i].add(board[i][j])
# check column
if board[i][j] in col[j]:
return False
else:
col[j].add(board[i][j])
# check box
if board[i][j] in box[(i//3)*3+(j//3)]:
return False
else:
box[(i//3)*3+(j//3)].add(board[i][j])
return True