class Solution {
public:
bool isValidSudoku(vector<vector<char>>& board) {
int check[10];
for(int i = 0;i < 9;i++){
memset(check,0,sizeof(check));
for(int j = 0;j < 9;j++){
if(board[i][j] == '.')continue;
if(check[board[i][j]-'0'])return false;
check[board[i][j]-'0'] = true;
}
memset(check,0,sizeof(check));
for(int j = 0;j < 9; j++){
if(board[j][i] == '.') continue;
if(check[board[j][i]-'0'])return false;
check[board[j][i]-'0'] = true;
}
}
for(int i = 0;i < 3; i++){
for(int j = 0;j < 3; j++){
memset(check,0,sizeof(check));
for(int k = 0;k < 3; k++){
for(int l = 0;l < 3; l++){
int x = i*3+k,y=j*3+l;
if(board[x][y] == '.') continue;
if(check[board[x][y]-'0'])return false;
check[board[x][y]-'0'] = true;
}
}
}
}
return true;
}
};