很多题我都是按照暴力的思路去求解的,这个也是,写了五层循环自己心里也没有什么底气的样子哈哈
图片说明

class Solution {
public:
    bool isValidSudoku(vector<vector<char>>& board) {
        //判断横向和竖向
        int br[10],bc[10];
        for(int i=0;i<board.size();i++){
              memset(br,0,sizeof(br));
              memset(bc,0,sizeof(bc));
              for(int j=0;j<board[i].size();j++){
                  if(board[i][j]>='0'&&board[i][j]<='9'){
                      br[board[i][j]-'0']++;
                  }
                  if(board[j][i]>='0'&&board[j][i]<='9'){
                      bc[board[j][i]-'0']++;
                  }                         
              }
              for(int k=0;k<10;k++){
                  if(br[k]>1||bc[k]>1){
                      return false;
                  }
              }
          }
          //判断3*3的格子里是否有重合
          int b[10];
          for(int si=0;si<board.size();si=si+3){
              for(int sj=0;sj<board[si].size();sj=sj+3){
                  memset(b,0,sizeof(b));
                  for(int i=si;i<si+3;i++){
                      for(int j=sj;j<sj+3;j++){
                        if(board[i][j]>='0'&&board[i][j]<='9'){
                            b[board[i][j]-'0']++;
                        }    
                      }
                  }
                  for(int k=0;k<10;k++){
                      if(b[k]>1) return false;
                  }
              }
          }
        return true;
    }
};