class Solution {
public:
bool isValidSudoku(vector<vector<char> > &board) {
int n = board.size();
if(n != 9)
return false;
int m = board[0].size();
if(m != 9)
return false;
bool used[10];
for(int i = 0; i < 9; i++)
{
memset(used,false,10*sizeof(bool));
for(int j = 0; j < 9;j++)
{
char ch = board[i][j];
if(ch == '.')
continue;
assert(ch >= '0' && ch <= '9');
int num = ch - '0';
if(used[num])
return false;
used[num] = true;
}
}
for(int i = 0; i < 9; i++)
{
memset(used,false,10*sizeof(bool));
for(int j = 0; j < 9;j++)
{
char ch = board[j][i];
if(ch == '.')
continue;
assert(ch >= '0' && ch <= '9');
int num = ch - '0';
if(used[num])
return false;
used[num] = true;
}
}
for(int i =0 ;i < 9; i+= 3)
{
for(int j = 0; j < 9; j+=3)
{
memset(used,false,10*sizeof(bool));
for(int k = i; k < i+3; k++)
{
for(int l = j; l < j+3;l++)
{
char ch = board[k][l];
if(ch == '.')
continue;
assert(ch >= '0' && ch <= '9');
int num = ch - '0';
if(used[num])
return false;
used[num] = true;
}
}
}
}
return true;
}
};
leetcode:Valid Sudoku
最新推荐文章于 2020-10-07 18:00:04 发布