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.
Java语言: ValidSudoku
01 public boolean isValidSudoku(char[][] board) {
02 for(int i=0; i<9; i++)
03 {
04 boolean [] exist=new boolean[9];
05 for(int j=0;j<9;j++)
06 {
07 if(board[i][j]!='.')
08 {
09 int value=board[i][j]-'0';
10 if(exist[value-1]==true)
11 return false;
12 exist[value-1]=true;
13 }
14 }
15 }
16
17 for(int j=0; j<9; j++)
18 {
19 boolean [] exist=new boolean[9];
20 for(int i=0;i<9;i++)
21 {
22 if(board[i][j]!='.')
23 {
24 int value=board[i][j]-'0';
25 if(exist[value-1]==true)
26 return false;
27 exist[value-1]=true;
28 }
29 }
30 }
31
32 for(int m=0;m<3;m++)
33 {
34 for(int n=0;n<3;n++)
35 {
36 boolean []exist=new boolean[9];
37 for(int i=0;i<3;i++)
38 {
39 for(int j=0;j<3;j++)
40 {
41 if(board[m*3+i][n*3+j]!='.')
42 {
43 int value=board[m*3+i][n*3+j]-'0';
44 if(exist[value-1]==true)
45 return false;
46 exist[value-1]=true;
47 }
48 }
49 }
50 }
51 }
52
53 return true;
54 }
02 for(int i=0; i<9; i++)
03 {
04 boolean [] exist=new boolean[9];
05 for(int j=0;j<9;j++)
06 {
07 if(board[i][j]!='.')
08 {
09 int value=board[i][j]-'0';
10 if(exist[value-1]==true)
11 return false;
12 exist[value-1]=true;
13 }
14 }
15 }
16
17 for(int j=0; j<9; j++)
18 {
19 boolean [] exist=new boolean[9];
20 for(int i=0;i<9;i++)
21 {
22 if(board[i][j]!='.')
23 {
24 int value=board[i][j]-'0';
25 if(exist[value-1]==true)
26 return false;
27 exist[value-1]=true;
28 }
29 }
30 }
31
32 for(int m=0;m<3;m++)
33 {
34 for(int n=0;n<3;n++)
35 {
36 boolean []exist=new boolean[9];
37 for(int i=0;i<3;i++)
38 {
39 for(int j=0;j<3;j++)
40 {
41 if(board[m*3+i][n*3+j]!='.')
42 {
43 int value=board[m*3+i][n*3+j]-'0';
44 if(exist[value-1]==true)
45 return false;
46 exist[value-1]=true;
47 }
48 }
49 }
50 }
51 }
52
53 return true;
54 }
没有评论:
发表评论