您的位置:首页 > 其它

【leetcode】Valid Sudoku

2015-05-18 14:39 211 查看
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 {
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++) //row
{
if(check(board[i][j],used)==false)
return false
}

fill(used,used+9,false);
for(int j=0;j<9;j++) //col
{
if(check(board[j][i],used)==false)
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[i][j],used)==false)
return false;
}
}
}

return true;
}

bool check(char ch,bool used[9])
{
if(ch=='.') return true;

if(used[ch-'1']) return false;

return used[ch-'1']=true;

}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: