码迷,mamicode.com
首页 > 其他好文 > 详细

Leetcode Valid Sudoku

时间:2014-07-08 23:12:45      阅读:298      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   strong   art   

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 ‘.‘.

bubuko.com,布布扣

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.

玩过九宫格的都应该知道规则(没玩过的可以试玩一下九宫格

(1)每行1~9各出现一次

(2)每列1~9各出现一次

(3)每个小的3宫格,1~9各出现一次

class Solution {
public:

    bool isValidRow(vector<vector<char> >& board){
        for(int row = 0; row < 9; ++ row){
            vector<int> cnt(10,0);
            for(int col = 0; col < 9; ++ col){
                char item = board[row][col];
                if(item != .){
                    if(cnt[item-0]!=0) return false;
                    else cnt[item-0]++;
                }
            }
        }
        return true;
    }
    
    bool isValidCol(vector<vector<char> >& board ){
        for(int col = 0; col < 9; ++ col){
            vector<int> cnt(10,0);
            for(int row = 0; row < 9; ++ row){
                char item = board[row][col];
                if(item != .){
                    if(cnt[item-0]!=0) return false;
                    else cnt[item-0]++;
                }
            }
        }
        return true;
    }
    
    bool isValidBox(vector<vector<char> >& board){
        for(int i = 0 ; i < 3; ++ i){
            for(int j = 0 ; j < 3; ++ j){
                vector<int> cnt(10,0);
                for(int row = 3*i;row < 3*i+3; ++row){
                    for(int col = 3*j; col < 3*j+3; ++col){
                        char item = board[row][col];
                        if(item != .){
                            if(cnt[item-0]!=0) return false;
                            else cnt[item-0]++;
                        }
                    }
                }
            }
        }
        return true;
    }

    bool isValidSudoku(vector<vector<char> > &board) {
        return isValidRow(board)&&isValidCol(board)&&isValidBox(board);
    }
};

 

Leetcode Valid Sudoku,布布扣,bubuko.com

Leetcode Valid Sudoku

标签:style   blog   http   color   strong   art   

原文地址:http://www.cnblogs.com/xiongqiangcs/p/3830416.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!