题目
Determine if a Sudoku is valid, according to: Sudoku Puzzles - The Rules.
The Sudoku board could be partially filled, where empty cells are filled with the character '.'
.
A partially filled sudoku which is valid.
Note:
A valid Sudoku board (partially filled) is not necessarily solvable. Only the filled cells need to be validated.
直接根据游戏要求,测试一下即可
代码:
class Solution {
int flag[9]; //标记相应的序号出现情况
public:
void initial() //初始化
{
for(int i=0;i<9;i++)
flag[i]=0;
}
bool isValidSudoku(vector<vector<char> > &board) {
int id;
int i,j,k,l;
for(i=0;i<9;i++) //行
{
initial();
for(j=0;j<9;j++)
if(board[i][j]!='.'&&++flag[board[i][j]-'1']!=1)
return false;
}
for(i=0;i<9;i++) //列
{
initial();
for(j=0;j<9;j++)
if(board[j][i]!='.'&&++flag[board[j][i]-'1']!=1)
return false;
}
for(i=0;i<3;i++) //九宫格
for(j=0;j<3;j++)
{
initial();
for(k=0;k<3;k++)
for(l=0;l<3;l++)
if(board[3*i+k][3*j+l]!='.'&&++flag[board[3*i+k][3*j+l]-'1']!=1)
return false;
}
return true;
}
};