1.题目要求:
2.题目步骤:
写好判断函数
3.题目代码:
class Solution {
public:bool isvalid(vector<vector<char>>& board,char num,int row,int col){//先找左下标int leftrow = row - 1;while(leftrow >= 0){if(board[leftrow][col] == num){return false;}leftrow--;}//再找右下标int rightrow = row + 1;while(rightrow < 9){if(board[rightrow][col] == num){return false;}rightrow++;}//先找上下标int upcol = col - 1;while(upcol >= 0){if(board[row][upcol] == num){return false;}upcol--;}//再找下下标int downcol = col + 1;while(downcol < 9){if(board[row][downcol] == num){return false;}downcol++;}//在分区jiu'gong'geint part_row = row;while(part_row != 0&&part_row != 3&&part_row != 6){part_row--;} int part_col = col; while(part_col != 0&&part_col != 3&&part_col != 6){part_col--;}for(int i = part_row;i <= part_row + 2;i++){for(int j = part_col;j <= part_col + 2;j++){if(board[i][j] != '.'&&i != row && j != col){if(board[i][j] == num){return false;}}}}return true; }bool isValidSudoku(vector<vector<char>>& board) {for(int i = 0;i < board.size();i++){for(int j = 0;j < board[i].size();j++){if(board[i][j] != '.'){bool ret = isvalid(board,board[i][j],i,j);if(ret == false){return false;} }}}return true;}
};