//分别检查列,行,所在的块,看了别人的代码
class Solution {
public:
bool isValidSudoku(vector<vector<char> > &board)
{
bool used[9];
for(int i=0; i<9; ++i)
{
fill(used, used+9, false);
for(int j=0; j<9; ++j)
if(!check(board[i][j],used))
return false;
fill(used, used+9, false);
for(int j=0; j<9; ++j)
if(!check(board[j][i],used))
return false;
}
for(int r=0; r<3; ++r)
for(int c=0; c<3; ++c)
{
fill(used, used+9, false);
for(int i=r*3; i<r*3+3; ++i)
for(int j=c*3; j<c*3+3; ++j)
{
if(!check(board[j][i],used))
return false;
}
}
return true;
}
bool check(char ch, bool used[9])
{
if(ch == '.')
return true;
if(used[ch-'1'])
return false;
used[ch-'1']=true;
return true;
}
};