题目:

请判定一个数独是否有效。

该数独可能只填充了部分数字,其中缺少的数字用 . 表示。

样例:

The following partially filed sudoku is valid.

思路:

什么是数独

Each row must have the numbers 1-9 occuring just once.

Each column must have the numbers 1-9 occuring just once.

And the numbers 1-9 must occur just once in each of the 9 sub-boxes of the grid.

数独的合法性

只要当前已经填充的数字是合法的就可以,不一定要这个数独是有解的。

所以,本题的思路就是使矩阵的每一行已有的数字不重复,每一列已有的数字不重复,每一个小九宫格的数字不重复。每次一个set来存储数字出现的状态。

参考答案:

class Solution {

public:

/*

* @param board: the board

* @return: whether the Sudoku is valid

*/

bool isValidSudoku(vector> &board) {

// write your code here

if(board.empty()) return false;

for(int i=0; i<9; i++){//检查每一行

map row; //未初始化的bool值是false

for(int j=0; j<9; j++){

if(board[i][j] != '.'){ //遇到‘.’就忽略掉

if(row[board[i][j]] == true){

return false;

}

else{

row[board[i][j]] = true;

}

}

}

}

for(int i=0; i<9; i++){//检测每一列

map col;

for(int j=0; j<9; j++){

if(board[j][i] != '.'){

if(col[board[j][i]] == true){

return false;

}

else{

col[board[j][i]] = true;

}

}

}

}

for(int i=0; i<9; i+=3){

for(int j=0; j<9; j+=3){//检查每一个小块

map block;

for(int k=0; k<9; k++){

if(board[i+k/3][j+k%3] != '.'){

if(block[board[i+k/3][j+k%3]] == true){

return false;

}

else{

block[board[i+k/3][j+k%3]] = true;

}

}

}

}

}

return true;

}

};

c语言判断一个数独是否合法,判断数独是否合法相关推荐

  1. C语言 输入一个字符,并判断这个字符属于哪一类字符

    C语言 输入一个字符,并判断这个字符属于哪一类字符. #include<stdio.h> int main () {char ch;ch = getchar();putchar(ch);i ...

  2. 请你判断一个 9 x 9 的数独是否有效。只需要 根据以下规则 ,验证已经填入的数字是否有效即可

    这是一个很好的算法 在leetcode 也曾出现,今天我们详细分析一下: 题目简介: /*** 请你判断一个 9 x 9 的数独是否有效.只需要 根据以下规则 ,验证已经填入的数字是否有效即可.** ...

  3. C语言:一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。

    题目:一个5位数,判断它是不是回文数.即12321是回文数,个位与万位相同,十位与千位相同. 程序分析:此题要求判断一个五位数是不是回文数,首先要理解回文数的定义,然后我们就要思考如何处理我们输入的五 ...

  4. C语言中判断一个三位数是否是水仙花数,判断三位数是否为水仙花数

    用C语言写出判断一个三位数是否为水仙花数的程序 请给正确的答案,不懂的别进 1.一个主程序,输出所有的水仙花数程序,可参考如下: #include int main(int argc, char *a ...

  5. 偶数乘2奇数乘3C语言,输入一个整数x,如果为偶数乘2,否则乘3,然后输出.C语言

    编写一个程序,输入一个正整数,并做以下运算:如果为偶数,除以2,如果为奇数,乘3加1.得到的结果再按上 本人不会C#,算法相通,用c语言演示一下:#includevoidmain(void){intz ...

  6. python判断ip地址是否合法_python实现判断一个字符串是否是合法IP地址的示例

    一个刚结束的笔试题目,简单贴一下吧,下面是具体实现: #!usr/bin/env python #encoding:utf-8 ''' __Author__:沂水寒城 功能:判断一个字符串是否是合法I ...

  7. (c语言)判断一个正整数是否是回文数

    (c语言)判断一个正整数是否是回文数 回文数是指从左到右和从右到左读这个数是一样的.例如:1,101,1221都是回文数. #include<stdio.h> #include<st ...

  8. aspx 判断字符串是否为decimal_python实现判断一个字符串是否是合法IP地址

    一个刚结束的笔试题目,简单贴一下吧,下面是具体实现: #!usr/bin/env python#encoding:utf-8 '''__Author__:沂水寒城功能:判断一个字符串是否是合法IP地址 ...

  9. c语言 判断一个图是否全连通_【连载】(判断执行语句)乐创DIY C语言讲义——3.8节(2)...

    2 判断执行语句 判断执行语句,执行时候会有一个条件判断,一旦当条件判断为真,即True的时候,就执行相应的语句,满足条件被执行的语句用大括号"{}"括起来.由于在C语言中没有用于 ...

  10. c语言判断字符串的编码,C语言中判断一个char*是不是utf8编码

    C语言中判断一个char*是不是utf8编码 里我修改了一下, 纯ASCII编码的字符串也返回true, 因为UTF8和ASCII兼容 实例代码: int utf8_check(const char* ...

最新文章

  1. 奇数码问题(逆序对)
  2. [Google Guava] 11-事件总线
  3. python module是干什么的_如何最简单、通俗地理解Python的模块?
  4. C#:Dockpanel的一些入门的基本操作
  5. python函数可以作为容器对象吗_正确理解Python函数是第一类对象
  6. android 自定义控件viewgroup,Android自定义控件ViewGroup
  7. 跟幼师谈恋爱什么梗_和懂你的人谈恋爱,比“秋天的第一杯奶茶”要甜
  8. python的变量与注释
  9. SpringCloud工作笔记063---Java 手机验证码生成_存储到redis
  10. 计算机视觉与模式识别代码合集第二版three
  11. python selenium初入
  12. Flutter 开发环境搭建Unable to ‘pub upgrade‘ flutter tool. Retrying in five seconds...
  13. ubuntu 18.04使用aqt安装QT5.12
  14. Win10系统启动Markdown Pad2 报‘Awesomium.Windows.Controls.WebControl’
  15. 计算机cpu尺寸,英特尔CPU型号尺寸.doc
  16. 设计模式笔记 ------ 建造者模式
  17. SQL server Date函数之CONVERT()函数
  18. 芜湖市计算机语言,2012年芜湖市小学计算机水平等级测评试卷(logo语言版)
  19. MemSQL、SQLFire、Oracle XE性能对比测试
  20. [转载] 机器学习数据集统计系列(二)

热门文章

  1. 网红书店的“关门潮”与场景阅读的“科技浪”
  2. 推荐十本值得一读的AI书籍(留言送书)
  3. android 打电话流程,Android 打电话 流程
  4. 字节跳动java后端一面面经(头条/西瓜视频)
  5. ajax富客户端存在的意义,基于AJAX的网上银行富客户端研究与设计
  6. GWAS数据分析流程—SNP、Indel注释
  7. 百度搜索结果页面的参数 键盘重复速度(rsv_sug3)
  8. 格式化输出编码问题!
  9. 百度云盘电影无字幕,如何寻找字幕加字幕?
  10. 一位苦逼程序员的找工作经历