⭐Valid Sudoku

int Solution::isValidSudoku(const vector<string> &A) {
    
    // check each row and col;
    for(int i = 0; i < 9; i++) {
        map<int, int> rowFreq, colFreq;
        for(int j = 0; j < 9; j++) {
            if(A[i][j] != '.' && ++rowFreq[A[i][j]] > 1) 
                return false;
            if(A[j][i] != '.' && ++colFreq[A[j][i]] > 1)
                return false;
        }
    }
    
    for(int blockRow = 0; blockRow < 9; blockRow += 3) 
        for(int blockCol = 0; blockCol < 9; blockCol += 3) {
            map<int, int> blockFreq;
            for(int i = 0; i < 3 ; i++)
                for(int j = 0; j < 3; j++)
                    if(A[blockRow + i][blockCol + j] != '.' && ++blockFreq[A[blockRow + i][blockCol + j]] > 1)
                        return false;
        }
        
    return true;
}

Accepted

Accepted

Last updated