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.

C++:
01 bool isValidSudoku(vector<vector<char> > &board) {
02       for(int i=0;i<9;i++){
03           int row=0;
04           int col=0;
05           for(int j=0;j<9;j++){
06               int a=board[i][j]‘0’;
07               int b=board[j][i]‘0’;
08               if((a>=1)&&(a<=9)){
09                   if((row&(1<<a))!=0)
10                       return false;
11                   else
12                       row|=1<<a;
13               }
14               if((b>=1)&&(b<=9)){
15                   if((col&(1<<b))!=0)
16                       return false;
17                   else
18                       col|=1<<b;
19               }
20           }
21       }
22       for(int i=0;i<7;i=i+3){
23           for(int j=0;j<7;j=j+3){
24               int box=0;
25               for(int t=i;t<i+3;t++){
26                   for(int k=j;k<j+3;k++){
27                       int a=board[t][k]‘0’;
28                       if((a>=1)&&(a<=9)){
29                           if((box&(1<<a))!=0)
30                               return false;
31                           else
32                               box|=1<<a;
33                        }
34                   }
35               }
36           }
37       }
38       return true;
39 }
Advertisements
This entry was posted in Array and linked list. Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s