public boolean isValidSudoku(char[][] board) {
        if (board.length != 9 || board[0].length != 9)
            return false;
        
        this.board = board;
        
        boolean tmp;
        for (int i = 0; i < 9; i ++) {
            tmp = checkRow(i);
            if (tmp == false)
                return false;
        }
        
        for (int i = 0; i < 9; i ++) {
            tmp = checkColumn(i);
            if (tmp == false)
                return false;
        }
        
        for (int i = 0; i < 3; i ++)
            for (int j = 0; j < 3; j ++) {
                tmp = checkSquare(i, j);
                if (tmp == false)
                    return false;
            }
        
        return true;   
    }