Dtermine if a Sudoku is valid,according to :Sudoku Puzzles - The Rules http://sudoku.com.au/TheRules.aspx The Sudoku board could be partially filled,where empty cells are filled with the character '.'.
code example :
public bool isValidSudoku(char[][] board)
{
bool[] used = new bool[9];
for (var i = 0; i < 9; ++i)
{
Array.Clear(used, 0, used.Length);
for (var j = 0; j < 9; ++j)
{
if (!check(board[i][j], used))
{
return false;
}
}
Array.Clear(used, 0, used.Length);
for (var 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)
{
Array.Clear(used, 0, used.Length);
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))
{
return false;
}
}
}
}
}
return true;
}
private static bool check(char ch, bool[] used)
{
if (ch == '.') return true;
if (used[ch - '1']) return false;
return used[ch - '1'] = true;
}