C语言检测数独是否合法,LintCode 判断数独是否合法
题目
请判定一个数独是否有效。
该数独可能只填充了部分数字,其中缺少的数字用 .表示。
注意事项
一个合法的数独(仅部分填充)并不一定是可解的。我们仅需使填充的空格有效即可。
样例
shudu.PNG
上面就是一个合法数独的样例
分析
初看上去题目似乎很复杂,其实不然。本题就是判断数组行列不能有重复元素,以及小九宫格不能有重复元素的算法。
首先,分别判断行,列,最后判断九宫格。
代码
class Solution {
/**
* @param board: the board
@return: wether the Sudoku is valid
*/
public boolean isValidSudoku(char[][] board) {
boolean[] visited = new boolean[9];
// row
for(int i = 0; i<9; i++){
Arrays.fill(visited, false);
for(int j = 0; j<9; j++){
if(!process(visited, board[i][j]))
return false;
}
}
//col
for(int i = 0; i<9; i++){
Arrays.fill(visited, false);
for(int j = 0; j<9; j++){
if(!process(visited, board[j][i]))
return false;
}
}
// sub matrix
for(int i = 0; i<9; i+= 3){
for(int j = 0; j<9; j+= 3){
Arrays.fill(visited, false);
for(int k = 0; k<9; k++){
if(!process(visited, board[i + k/3][ j + k%3]))
return false;
}
}
}
return true;
}
private boolean process(boolean[] visited, char digit){
if(digit == '.'){
return true;
}
int num = digit - '0';
if ( num < 1 || num > 9 || visited[num-1]){
return false;
}
visited[num-1] = true;
return true;
}
};
C语言检测数独是否合法,LintCode 判断数独是否合法相关推荐
- iOS开发判断手机号是否合法
#pragma mark----- 判断手机号是否合法 /*! @brief 判断手机号是否合法 */ + (NSString *)PhoneNumberMobile:(NSString *)mo ...
- C语言检测数独是否合法,判断数独是否合法
请判定一个数独是否有效. 该数独可能只填充了部分数字,其中缺少的数字用 . 表示. 注意事项 一个合法的数独(仅部分填充)并不一定是可解的.我们仅需使填充的空格有效即可. 您在真实的面试中是否遇到过这 ...
- c语言判断一个数独是否合法,判断数独是否合法
题目: 请判定一个数独是否有效. 该数独可能只填充了部分数字,其中缺少的数字用 . 表示. 样例: The following partially filed sudoku is valid. 思路: ...
- 在c语言中合法标识符的第一个字符必须是,c语言合法标识符判断规则是什么?...
规则是:1.标识符的第一个字符必须是字母(a~z或A~Z)或下划线(_):2.后面跟的字符是由任意字母.下划线(_).数字组成:3.标识符中的大小写字母是有区别的,代表不同含义:4.标识符不能是关键字 ...
- python实现多语言语种识别_用Python进行语言检测
最近正好碰到这个需求,总结一下用Python进行语言检测的方法. 1.用unicode编码检测 汉字.韩文.日文等都有对应的unicode字符集范围,只要用正则表达式匹配出来即可. 在判断的时候,往往 ...
- 正则表达式在JS中的应用,判断邮箱是否合法
目录 一.什么是正则表达式: 二.正则表达式基本符号: 三.简单的正则表达式: 四.创建正则表达式,调用方法: 五.例子:判断邮箱是否合法 一.什么是正则表达式: 正则表达式主要用在字符串格式匹配方面 ...
- 04.微博消息的语言检测
04.微博消息的语言检测 郑昀 201010 隶属于<02.数据解析>小节 大意是,封装Google语言检测ajax web service的接口,输入一段话,输出语言种类.这个方法是从R ...
- R语言数据格式转换函数、数据类型判断函数(numeric、character、vector、matrix、data.frame、factor、logical)、R语言数据格式类型转换
R语言数据格式转换函数.数据类型判断函数(numeric数值.character字符串.vector向量.matrix矩阵.data.frame数据表.factor因子.logical逻辑).R语言数 ...
- R语言all函数、any函数判断逻辑向量(logical vector)实战
R语言all函数.any函数判断逻辑向量(logical vector)实战 目录 R语言all函数.any函数判断逻辑向量(logical vector)实战 #基本语法
最新文章
- 转移操作主机角色至Windows Server 2012 R2
- RabbitMQ 入门
- 和ts一般怎么玩_KPL:一诺采访引热议,quot;裴擒虎是个野王都会quot;,暖阳怎么办?...
- 初学c++基础知识——第一个c++程序
- 解决php写入mysql乱码问题汇总
- sqlite中的命令
- python 的几个内置函数(lambda ,zip, filter, map, reduce )用法
- 判断一个Checkbox是否被选中
- ubuntu自定义安装里怎么选_中央空调到底应该怎么选?小户型也能安装中央空调?行家说实话了...
- java抢单功能_基于消息队列的高并发抢单功能实现方法与流程
- csredis封装_在.NET Core中使用CSRedis
- no properties discovered to create BeanSerializer 问题解决
- 2022-7 一套鼠标键盘控制两台及以上电脑
- 数码相机SD卡无法读取怎么办?照片怎么恢复
- 马斯克群发卫星造天文奇观,未来三天全国多地可见
- 面试常见问题之网络基础
- openwrt procd启动流程和脚本分析
- 2018最新Web前端经典面试试题及答案-史上最全前端面试题(含答案)--转载
- 设置coursera DNS
- 【HDOJ】4210 Su-domino-ku
热门文章
- ajax 导致 css 延迟_腾讯START云游戏《英雄联盟》的Mac 轻体验:延迟较高时会卡顿 - 游戏 - IT商业网...
- 集合例题1:已知数组存放一批QQ号码,QQ号码最长为11位,最短为5位String[] strs = {“12345“,“67891“,“12347809933“,“98765432102“,“678
- 右下角弹窗广告彻底关闭
- 解压tar.gz是tar -zxvf不是tar -xjf,后者对应的是tar.bz2
- U3DSPACESHOOT个人重制版。代码分享(五)其他代码部分
- thinkPHP6.0入门笔记(四)——删除和修改用户信息
- 萧毅舟;3.1今日黄金走势分析,反弹空,黄金白银操作建议
- C++函数形参为指针和指针引用的区别
- menu什么意思中文意思_menu是什么意思_menu的翻译_音标_读音_用法_例句_爱词霸在线词典...
- phoenix是什么?