LeetCode 36. Valid Sudoku
Solution1:我的答案,比较笨。但是清晰易懂好上手啊~~~
class Solution {
public:
bool isValidSudoku(vector<vector<char>>& board) {
//先判断9行、9列是否满足要求
for(int i = 0; i < 9; i++) { //i表示1-9行 && 1-9列
vector<int> symbol_row(9, 0), symbol_col(9, 0);
for(int j = 0; j < 9; j++) {
if(board[i][j] == '.')
continue;
else {
symbol_row[board[i][j] - '1']++;
if(symbol_row[board[i][j] - '1'] > 1)
return false;
}
}
for(int j = 0; j < 9; j++) {
if(board[j][i] == '.')
continue;
else {
symbol_col[board[j][i] - '1']++;
if(symbol_col[board[j][i] - '1'] > 1)
return false;
}
}
}
for(int i = 0; i <= 6; i +=3) {
for(int j = 0; j <= 6; j +=3) {
vector<int> symbol_sub(9, 0);
for(int m = i; m < i + 3; m++) {
for(int n = j; n < j + 3; n++) {
if(board[m][n] == '.')
continue;
else {
symbol_sub[board[m][n] - '1']++;
if(symbol_sub[board[m][n] - '1'] > 1)
return false;
}
}
}
}
}
return true;
}
};