leetcode[36]Valid Sudoku
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.
#define NUM 9 class Solution { public: bool isValidSudoku(vector<vector<char> > &board) { map<char,int> bmap; map<char,int> bmap1; map<char,int> bmap2; for (int i=0;i<NUM;i++) { bmap.clear(); bmap1.clear(); for (int j=0;j<NUM;j++) { if (board[i][j]!='.') { bmap[board[i][j]]++; if(bmap[board[i][j]]>1)return false; } if (board[j][i]!='.') { bmap1[board[j][i]]++; if (bmap1[board[j][i]]>1)return false; } } } for (int a=0;a<NUM;a+=3) { for (int b=0;b<NUM;b+=3) { bmap2.clear(); for (int ii=a;ii<a+3;ii++) { for (int jj=b;jj<b+3;jj++) { if (board[ii][jj]!='.') { bmap2[board[ii][jj]]++; if (bmap2[board[ii][jj]]>1)return false; } } } } } return true; } };