blob: 3c2f591f842b746e270cb6a3763a55d7f866580d (
plain)
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
|
struct Solution;
impl Solution {
pub fn is_valid_sudoku(board: Vec<Vec<char>>) -> bool {
let mut rows: [u16; 9] = [0; 9];
let mut cols: [u16; 9] = [0; 9];
let mut blck: [u16; 9] = [0; 9];
for i in 0..9 {
for j in 0..9 {
match board[i][j] {
'.' => continue,
c => {
let b: usize = (i / 3) * 3 + (j / 3);
let curr = 1 << (c.to_digit(10).unwrap());
if rows[i] & curr != 0 || cols[j] & curr != 0 || blck[b] & curr != 0 {
return false;
}
rows[i] |= curr;
cols[j] |= curr;
blck[b] |= curr;
}
}
}
}
true
}
}
|