36. Valid Sudoku
=============
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.
====
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,面板中每9个连续的子面板,必须由数字1-9出现,而且必须出现一次
规则连接:http://sudoku.com.au/TheRules.aspx
思路:
先按照行检查,再按照列检查,最后对子面板检查
检查的过程是使用hash_table形式的数组实现的.
==================
code:
class Solution {
    /*一个合法的数独应该符合三条规则
     * 1,每一行必须有数字1-9出现,而且必须出现一次
     * 2,每一列必须有数字1-9出现,而且必须出现一次
     * 3,面板中每9个连续的子面板,必须由数字1-9出现,而且必须出现一次
     * 规则连接:http://sudoku.com.au/TheRules.aspx
     *
     *
     * 实现方法:
     * 先按照行检查,在按照列检查,最后对子面板检查
     * 检查的过程是使用hash_table形式的数组实现的
     *
     * */
public:
    bool isValidSudoku(vector<vector<char>>& board) {
        bool used[];
        for(int i = ;i<;i++){
            fill(used,used+,false);
            for(int j = ;j<;j++){//check 行
                if(!check(board[i][j],used))
                    return false;
            }
            fill(used,used+,false);
            for(int j = ;j<;j++){//check 列
                if(!check(board[j][i],used))
                    return false;
            }
        }
        for(int r = ;r<;r++){
            for(int c = ;c<;c++){
                fill(used,used+,false);
                for(int i = r*;i<r*+;i++){
                    for(int j = c*;j<c*+;j++){
                        if(!check(board[i][j],used))
                            return false;
                    }
                }
            }
        }//for-for
    }//isValidSudoku
private:
    bool check(char ch,bool used[]){
        if(ch == '.') return true;
        if(used[ch - '']) return false;/*
                                        char型字节码可以充当数组下表,
                                        利用char类型的字面值就可以索引char字面值<key>对应的数组值<value>
                                        这是数据结构hash_table的体现:  key->value
                                        */
        return used[ch-''] = true;
    }
};
36. Valid Sudoku的更多相关文章
- [Leetcode][Python]36: Valid Sudoku
		# -*- coding: utf8 -*-'''__author__ = 'dabay.wang@gmail.com' 36: Valid Sudokuhttps://oj.leetcode.com ... 
- LeetCode:36. Valid Sudoku,数独是否有效
		LeetCode:36. Valid Sudoku,数独是否有效 : 题目: LeetCode:36. Valid Sudoku 描述: Determine if a Sudoku is valid, ... 
- leetcode 37. Sudoku Solver 36. Valid Sudoku 数独问题
		三星机试也考了类似的题目,只不过是要针对给出的数独修改其中三个错误数字,总过10个测试用例只过了3个与世界500强无缘了 36. Valid Sudoku Determine if a Sudoku ... 
- 【LeetCode】36. Valid Sudoku 解题报告(Python)
		[LeetCode]36. Valid Sudoku 解题报告(Python) 作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 题目地址 ... 
- LeetCode 36 Valid Sudoku
		Problem: Determine if a Sudoku is valid, according to: Sudoku Puzzles - The Rules. The Sudoku board ... 
- 【LeetCode】36 - Valid Sudoku
		Determine if a Sudoku is valid, according to: Sudoku Puzzles - The Rules.(http://sudoku.com.au/TheRu ... 
- Java [leetcode 36]Valid Sudoku
		题目描述: Determine if a Sudoku is valid, according to: Sudoku Puzzles - The Rules. The Sudoku board cou ... 
- 【LeetCode题意分析&解答】36. Valid Sudoku
		Determine if a Sudoku is valid, according to: Sudoku Puzzles - The Rules. The Sudoku board could be ... 
- 36. Valid Sudoku (Array; HashTable)
		Determine if a Sudoku is valid, according to: Sudoku Puzzles - The Rules. The Sudoku board could be ... 
随机推荐
- discuz使用
			1.discuz登陆错误过多,后台删除ip SELECT * FROM `lang_common_admincp_session` 2.Discuz与UCenter通信失败的解决方法 应用与 UCen ... 
- ES6-函数扩展
- hilbert矩阵                                                       分类:            数学             2015-07-31 23:03    2人阅读    评论(0)    收藏
			希尔伯特矩阵 希尔伯特矩阵是一种数学变换矩阵 Hilbert matrix,矩阵的一种,其元素A(i,j)=1/(i+j-1),i,j分别为其行标和列标. 即: [1,1/2,1/3,--,1/n] ... 
- 信頼済みサイト对window.open窗体大小影响原因之一
			如果某站点被添加进去之后,这个站点窗体限制被决定了,window.open里面,status bar 无效的设置不再起作用.而且,如果原来status bar被 任务栏挡住的话,这个时候它就会被显示出 ... 
- php连接MongoDB
			一.安装php的mongo扩展 # wget https://github.com/mongodb/mongo-php-driver-legacy/archive/master.zip -O /usr ... 
- URAL 1208 Legendary Teams Contest(DFS)
			Legendary Teams Contest Time limit: 1.0 secondMemory limit: 64 MB Nothing makes as old as years. A l ... 
- 上传按钮样式优化 <input type="file" />
			<html><head><title>上传按钮样式优化</title> <style>.form-element-file-wapper { ... 
- 在js自定义函数中使用$(event.target)代替$(this)
			<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ... 
- HTTPS-使用Fiddler抓取HTTPS数据包原理
			最近想尝试基于Fiddler的录制功能做一些接口的获取和处理工作,碰到的一个问题就是简单连接Fiddler只能抓取HTTP协议,关键的登录请求等HTTPS协议都没有捕捉到,所以想让Fiddler能够同 ... 
- Python使用MySQL数据库的方法以及一个实例
			使用环境:Windows+python3.4+MySQL5.5+Navicat 一.创建连接 1.准备工作,想要使用Python操作MySQL,首先需要安装MySQL-Python的包,在Python ... 
