36. Valid Sudoku

2016-09-21  本文已影响42人  exialym

Determine if a Sudoku is valid, according to: Sudoku Puzzles - The Rules.

The Sudoku board could be partially filled, where empty cells are filled with the character '.'.

A partially filled sudoku which is valid.

Note:
A valid Sudoku board (partially filled) is not necessarily solvable. Only the filled cells need to be validated.

就走一遍二维数组,行列同时走,用两个对象记录。至于方块,基于行来走,用3个对象来记录,走3行清空三个对象。

var isValidSudoku = function(board) {
    var row = {};
    var col = {};
    var suq = [{},{},{}];
    for (var i = 0;i<9;i++) {
        for (var j = 0; j < 9;j++) {
            var val = board[i][j];
            var valCol = board[j][i];
            console.log(i+":::"+valCol)
            if (valCol!=='.') {
                if (col[valCol]!==undefined) 
                    return false;
                else
                    col[valCol] = 0;
            }
            if (val!=='.') {
                //console.log(row[val])
                //行不重复
                if (row[val]!==undefined)
                    return false;
                else
                    row[val] = 0;
                //方块不重复
                if (suq[parseInt(j/3)][val]!==undefined)
                    return false;
                else
                    suq[parseInt(j/3)][val] = 0;
            }
        }
        row = {};
        col = {};
        if ((i%3)===2)
            suq = [{},{},{}];
    }
    return true;
};
上一篇下一篇

猜你喜欢

热点阅读