LC JS #36

148 阅读1分钟
/**
 * @param {character[][]} board
 * @return {boolean}
 */
var isValidSudoku = function(board) {
    for(let i = 0; i < 9; ++i){
        let set = new Set();
        for(let j = 0; j < 9; ++j){
            if(board[i][j] === '.'){
                continue;
            }
            if(set.has(board[i][j])){
                return false;
            }
            set.add(board[i][j]);
        }
    }
    for(let j = 0; j < 9; ++j){
        let set = new Set();
        for(let i = 0; i < 9; ++i){
            if(board[i][j] === '.'){
                continue;
            }
            if(set.has(board[i][j])){
                return false;
            }
            set.add(board[i][j]);
        }
    }
    for(let i = 0; i < 3; ++i){
        for(let j = 0; j < 3; ++j){
            let set = new Set();
            for(let p = 0; p < 3; ++p){
                for(let q = 0; q < 3; ++q){
                    let obj = board[i * 3 + p][j * 3 + q];
                    if(obj === '.'){
                        continue;
                    }
                    if(set.has(obj)){
                        return false;
                    }
                    set.add(obj);
                }
            }
        }
    }
    return true;
};