Determine if a Sudoku is valid, according to: Sudoku Puzzles - The Rules.
The Sudoku board could be partially filled, where empty cells are filled with the character '.'
.
A partially filled sudoku which is valid.
Note:
A valid Sudoku board (partially filled) is not necessarily solvable. Only the filled cells need to be validated.
横竖扫+ 格子扫,暴力解法
class Solution {
public:
bool isValidSudoku(vector<vector<char> > &board) {
bool tbl[9];
bool tbl2[9];
for (int i=0; i<9; i++){
memset(tbl,0,9);
memset(tbl2,0,9);
for (int j=0; j<9; j++){
char val1=board[i][j];
char val2=board[j][i];
if (val1!='.'){
if (tbl[(int)(val1-'1')])
return false;
else
tbl[(int)(val1-'1')]=true;
}
if (val2!='.'){
if (tbl2[(int)(val2-'1')])
return false;
else
tbl2[(int)(val2-'1')]=true;
}
}
}
for (int i=0; i<9; i+=3){
for (int j=0; j<9; j+=3){
memset(tbl,0,9);
for (int ii=i;ii<i+3; ii++){
for (int jj=j; jj<j+3;jj++){
char val=board[ii][jj];
if (val!='.'){
if (tbl[(int)(val-'1')])
return false;
else
tbl[(int)(val-'1')]=true;
}
}
}
}
}
return true;
}
};