-
Notifications
You must be signed in to change notification settings - Fork 13
/
Copy pathp036.c
27 lines (27 loc) · 836 Bytes
/
p036.c
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
bool isValidSudoku(char** board, int boardRowSize, int boardColSize) {
if (boardRowSize != 9 || boardColSize != 9) return false;
bool hori[9][9] = {false};
bool ver[9][9] = {false};
bool zone[9][9] = {false};
int i, j, zbase = 0;
for (i = 0; i < 9; i++)
{
if (i == 3 || i == 6) zbase += 3;
int z = zbase;
for (j = 0; j < 9; j++)
{
if (j == 3 || j == 6) z++;
if (board[i][j] != '.')
{
int x = board[i][j]-'1';
if (hori[i][x]) return false;
hori[i][x] = true;
if (ver[j][x]) return false;
ver[j][x] = true;
if (zone[z][x]) return false;
zone[z][x] = true;
}
}
}
return true;
}