描述
请判定一个数独是否有效。
该数独可能只填充了部分数字,其中缺少的数字用 .
表示。
一个合法的数独(仅部分填充)并不一定是可解的。我们仅需使填充的空格有效即可。
您在真实的面试中是否遇到过这个题?
是
样例
The following partially filed sudoku is valid.
行、列、每个小九宫格内不能有重复的数字,采用哈希表最简单。
class Solution {
public:
/**
* @param board: the board
* @return: whether the Sudoku is valid
*/
bool isValidSudoku(vector<vector<char>> &board) {
// write your code here
int row[9][9]={0},column[9][9]={0},square[9][9]={0};
for(int i=0;i<9;i++){
for(int j=0;j<9;j++){
if(board[i][j]!='.'){
int k = i/3*3+j/3;
int number = board[i][j]-'1';
if(row[i][number]||column[j][number]||square[k][number] return false;
row[i][number]=column[j][number]=square[k][number]=1;
}
}
}
return true;
}
};