标签:
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.
合法的数独就是每一行每一列每一个3*3小块都不能有重复的数字
class Solution { public: bool isValidSudoku(vector<vector<char>>& board) { int row[10],col[10]; for(int i=0;i<9;i++){ memset(row,0,sizeof(int)*10); memset(col,0,sizeof(int)*10); for(int j=0;j<9;j++){ if(board[i][j]!=‘.‘){ if(row[board[i][j]-‘0‘]!=0){ return false; } row[board[i][j]-‘0‘] = 1; } if(board[j][i]!=‘.‘){ if(col[board[j][i]-‘0‘]!=0){ return false; } col[board[j][i]-‘0‘] = 1; } } } for(int i=0;i<9;i+=3){ for(int j=0;j<9;j+=3){ memset(row,0,sizeof(int)*10); for(int a=0;a<3;a++){ for(int b=0;b<3;b++){ if(board[i+a][j+b]!=‘.‘){ int digit = board[i+a][j+b]-‘0‘; if(row[digit]!=0){ return false; } row[digit] = 1; } } } } } return true; } };
标签:
原文地址:http://www.cnblogs.com/zengzy/p/5051643.html