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.

思路:

思路很简单,只要检查每行、每列、每个子区域中没有重复的数字即可。

代码:

 1     bool isValidSudoku(vector<vector<char> > &board) {
 2         // Note: The Solution object is instantiated only once and is reused by each test case.
 3         map<char, int> table;
 4         for(int i = 0; i < 9; i++){
 5             table.clear();
 6             for(int j = 0; j < 9; j++){
 7                 if(board[i][j] != '.'){
 8                     if(table.find(board[i][j]) != table.end())
 9                         return false;
10                     else
11                         table[board[i][j]] = 1;
12                 }
13             }
14         }
15         for(int i = 0; i < 9; i++){
16             table.clear();
17             for(int j = 0; j < 9; j++){
18                 if(board[j][i] != '.'){
19                     if(table.find(board[j][i]) != table.end())
20                         return false;
21                     else
22                         table[board[j][i]] = 1;
23                 }
24             }
25         }
26         for(int i = 0; i < 9; i++){
27             table.clear();
28             for(int j = 0; j < 3; j++){
29                 for(int k = 0; k < 3; k++){
30                     if(board[3*(i/3)+j][3*(i%3)+k] != '.'){
31                         if(table.find(board[3*(i/3)+j][3*(i%3)+k]) != table.end())
32                             return false;
33                         else
34                             table[board[3*(i/3)+j][3*(i%3)+k]] = 1;
35                     }
36                 }
37             }
38         }
39         return true;
40     }

 

posted on 2013-11-09 13:09  waruzhi  阅读(172)  评论(0编辑  收藏  举报

导航