1.验证数独
class Solution { public: int hash[9]; bool isValidSudoku(vector<vector<char> > &board) { for(int i=0;i<9;i++) { if(isvalidRow(i,board)==false)return false; } for(int i=0;i<9;i++) { if(isvalidCol(i,board)==false)return false; } for(int i=0;i<9;i=i+3) { for(int j=0;j<9;j=j+3) if(isvalidMatrix(i,j,board)==false)return false; } return true; } bool isvalidRow(int a,vector<vector<char> > &board) { memset(hash,0,sizeof(hash)); for(int i=0;i<9;i++) { if(board[a][i]!='.')hash[board[a][i]-'0'-1]++; } for(int i=0;i<9;i++) { if(hash[i]>=2)return false; } return true; } bool isvalidCol(int a,vector<vector<char> > &board) { memset(hash,0,sizeof(hash)); for(int i=0;i<9;i++) { if(board[i][a]!='.')hash[board[i][a]-'0'-1]++; } for(int i=0;i<9;i++) { if(hash[i]>=2)return false; } return true; } bool isvalidMatrix(int a,int b,vector<vector<char> > &board) { memset(hash,0,sizeof(hash)); for(int i=a;i<a+3;i++) { for(int j=b;j<b+3;j++) { if(board[i][j]!='.')hash[board[i][j]-'0'-1]++; } } for(int i=0;i<9;i++) { if(hash[i]>=2)return false; } return true; } };