class Solution {
public boolean isValidSudoku(char[][] board) {
// validate each row
for (int i = 0; i < 9; i++) {
boolean[] taken = new boolean[9];
for (int j = 0; j < 9; j++) {
char c = board[i][j];
if (c != '.') {
int num = c - '1';
if (taken[num]) {
return false;
}
taken[num] = true;
}
}
}
// validate each fol
for (int i = 0; i < 9; i++) {
boolean[] taken = new boolean[9];
for (int j = 0; j < 9; j++) {
char c = board[j][i];
if (c != '.') {
int num = c - '1';
if (taken[num]) {
return false;
}
taken[num] = true;
}
}
}
// validate each 3*3 box
for (int i = 0; i < 9; i = i + 3) {
for (int j = 0; j < 9; j = j + 3) {
boolean[] taken = new boolean[9];
for (int m = 0; m < 3; m++) {
for (int n = 0; n < 3; n++) {
char c = board[i + m][j + n];
if (c != '.') {
int num = c - '1';
if (taken[num]) {
return false;
}
taken[num] = true;
}
}
}
}
}
return true;
}
}