Valid Sudoku
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.
class Solution {
public:
bool isValid(vector<vector<char> > &board, int x, int y, char tmp){
for(int i=0; i<9; i++){
if(board[x][i] == tmp || board[i][y] == tmp)
return false;
}
int start_x = x/3;
int start_y = y/3;
for(int i=0; i<9; i++){
int cur_x = start_x*3 + i/3;
int cur_y = start_y*3 + i%3;
if(board[cur_x][cur_y] == tmp)
return false;
}
return true;
}
bool isValidSudoku(vector<vector<char> > &board) {
for(int i=0; i<board.size(); i++){
for(int j=0; j<board[i].size(); j++){
if(board[i][j]=='.')
continue;
char tmp = board[i][j];
board[i][j] = 'C';
bool tr = isValid(board, i, j, tmp);
board[i][j] = tmp;
if(tr == false)
return tr;
}
}
return true;
}
};