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 ...
随机推荐
- ANTLR3完全参考指南读书笔记[01]
引用 Terence Parr. The Definitive ANTLR Reference, Building Domain Specific Languages(antlr3 version). ...
- 移动开发中使用Onsen UI的笔记
onsen var m_index = ons.bootstrap() 初始化框架 m_index 赋值 增加对象. m_index.value('getUser',{ // user:window. ...
- Java强,软,弱,虚类型
链接 http://wiseideal.iteye.com/blog/1469295
- leetcode 147. Insertion Sort List ----- java
Sort a linked list using insertion sort. 插入排序. /** * Definition for singly-linked list. * public cla ...
- JavaWeb学习记录(二)——防盗链技术
public class TestServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpSer ...
- Android—进度条
layout文件: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:an ...
- JSBinding + SharpKit / 实战:转换 2DPlatformer
最后修改:2015年07月29日 2016年2月25日 2DPlatformer 是 Unity3D 的一个官方 Demo.本文将介绍使用 JSBinging + SharpKit 转换 2DPlat ...
- DNS-解析、劫持、污染
DNS( Domain Name System)是“域名系统”的英文缩写,是一种组织成域层次结构的计算机和网络服务命名系统,它用于TCP/IP网络,它所提供的服务是用来将主机名和域名转换为IP地址的工 ...
- Python--类定义
转自:http://kanwoerzi.iteye.com/blog/1304466 Python笔记——类定义 一.类定义: class <类名>: <语句> 类实例化后,可 ...
- argparse
import argparse def test(a,b): print int(a)+int(b) parser = argparse.ArgumentParser() parser.add_arg ...