389-判断数独是否合法

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

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

注意事项

一个合法的数独(仅部分填充)并不一定是可解的。我们仅需使填充的空格有效即可。

说明

什么是 数独?

http://sudoku.com.au/TheRules.aspx

http://baike.baidu.com/subview/961/10842669.htm

样例

The following partially filed sudoku is valid.

标签

矩阵 优步

思路

暴力遍历

code

class Solution {
public:
/*
* @param board: the board
* @return: whether the Sudoku is valid
*/
bool isValidSudoku(vector<vector<char>> board) {
// write your code here
int sizeRow = board.size();
if (sizeRow != 9) {
return false;
}
int sizeCol = board[0].size();
if (sizeCol != 9) {
return false;
}
map<char, int> map;
for (int i = 0; i < sizeRow; i++) {
map.clear();
// 当前元素所在行
for (int j = 0; j < sizeCol; j++) {
if (board[i][j] <= '9' && board[i][j] >= '0') {
if (map[board[i][j]] > 0) {
return false;
}
else {
map[board[i][j]]++;
}
}
}
map.clear();
// 当前元素所在列
for (int j = 0; j < sizeRow; j++) {
if (board[j][i] <= '9' && board[j][i] >= '0') {
if (map[board[j][i]] > 0) {
return false;
}
else {
map[board[j][i]]++;
}
}
}
}
// 当前元素所在宫
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
int row = i * 3, col = j * 3;
map.clear();
for (int k = 0; k < 3; k++) {
for (int l = 0; l < 3; l++) {
if (board[row + k][col + l] <= '9' && board[row + k][col + l] >= '0') {
if (map[board[row + k][col + l]] > 0) {
return false;
}
else {
map[board[row + k][col + l]]++;
}
}
}
}
}
}
return true;
}
};

lintcode-389-判断数独是否合法的更多相关文章

  1. lintcode:Valid Sudoku 判断数独是否合法

    题目: 判断数独是否合法 请判定一个数独是否有效.该数独可能只填充了部分数字,其中缺少的数字用 . 表示. 样例 下列就是一个合法数独的样例. 注意 一个合法的数独(仅部分填充)并不一定是可解的.我们 ...

  2. 判断数独是否合法(LintCode)

    判断数独是否合法 请判定一个数独是否有效. 该数独可能只填充了部分数字,其中缺少的数字用. 表示. 样例 下列就是一个合法数独的样例. 注意 一个合法的数独(仅部分填充)并不一定是可解的.我们仅需使填 ...

  3. LintCode389.判断数独是否合法

    LintCode简单题:判断数独是否合法 问题描述: 请判定一个数独是否有效. 该数独可能只填充了部分数字,其中缺少的数字用 . 表示. 注意事项: 一个合法的数独(仅部分填充)并不一定是可解的.我们 ...

  4. LintCode_389 判断数独是否合法

    题目 请判定一个数独是否有效. 该数独可能只填充了部分数字,其中缺少的数字用 . 表示. 注意事项 一个合法的数独(仅部分填充)并不一定是可解的.我们仅需使填充的空格有效即可. 说明 什么是 数独? ...

  5. YTU 3001: 判断操作是否合法(栈和队列)

    3001: 判断操作是否合法(栈和队列) 时间限制: 1 Sec  内存限制: 128 MB 提交: 4  解决: 2 题目描述 假设以I和O分别表示进栈和出栈操作,栈的初态和终态均为空,进栈和出栈的 ...

  6. 用scanf_s判断输入数据是否合法

    用scanf_s判断输入数据是否合法 对用户输入的整数进行求和.当用户输入任意字符时,结束程序并打印结果. A. 用户可以输入整数和浮点数 B. 用户可以在同一行输入多个数字,数字之间可以是任意一个分 ...

  7. as3判断XML是否合法

    XML是否合法 在我认为 XML的标签成对 并且根标签外边没有其他东西 以下是合法的 <?xml version="1.0" encoding="utf-8&quo ...

  8. input判断输入值是否合法

    1.判断input输入的值是否合法有很多办法,我这里使用的是在onchange时进行判断,代码如下:[所有主要浏览器都支持] <input type="text" name= ...

  9. 数据结构中有关顺序表的问题:为何判断插入位置是否合法时if语句中用length+1,而移动元素的for语句中只用length?

    bool ListInsert(SqList &L,int i, ElemType e){ if(i<||i>L.length+) //判断i的范围是否有效 return fals ...

随机推荐

  1. PostgreSQL-pg_dump,pg_restore

    逻辑备份和psql一样,pg_dump.pg_restore有基本的和数据库连接的参数 -h 目标地址(对应环境变量$PGHOST) -p 连接端口(对应环境变量$PGPORT) -U 连接使用的用户 ...

  2. android 内存问题

    借鉴:大苞米的博客(http://blog.csdn.net/a396901990) 一.内存溢出(OOM--out of memory) (1)内存溢出引发的问题展现: 1.程序卡顿,响应速度慢(内 ...

  3. 【2011图灵奖得主】我眼中的Judea Pearl

    [2011图灵奖得主]我眼中的Judea Pearl 来源: 叶星遥的日志 2011年的图灵奖花落UCLA计算机系的Judea Pearl教授.图灵奖是计算领域的最高奖,由于近年来这个领域的兴盛也算是 ...

  4. POJ 3464 ACM Computer Factory

    ACM Computer Factory Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 4829 Accepted: 1641 ...

  5. Linux查看端口使用状态及启动

    LINUX网络性能之管理工具三剑客 本文是介绍管理Linux查看端口这些输出信息,该命令将显示从每个数据包传出的头和来自主机hostname对端口80的编址.Netstat -tln 命令是Linux ...

  6. Eclipse c++环境搭建 并加载OpenCV库 2015最新

    C++: 搜索 Eclipse c++ 即可 注意新版的mingw安装器,要安装: 1.mingw-developer-toolkit 2.mingw32-base 3.mingw32-gcc-g++ ...

  7. 【规范】javascript 变量命名规则(转)

    匈牙利命名法 语法 变量名 = 类型 + 对象描述 类型指变量的类型 对象描述指对象名字全称或名字的一部分,要求有明确含义,命名要容易记忆容易理解. 通过在变量名前面添加相应小写字母的符号标示作为前缀 ...

  8. Eclipse启动Tomcat报错,系统缺少本地apr库

    Eclipse启动Tomcat报错,系统缺少本地apr库. Tomcat中service.xml中的设置情况. 默认情况是HTTP协议的值:protocol="HTTP/1.1" ...

  9. flask-script&amp;flask-migrate使用

    一.简介 Flask-script扩展提供向Flask插入外部脚本的功能,包括运行一个开发用的服务器,一个定制的Python shell.设置数据库的脚本.cronjobs及其他运行在web应用之外的 ...

  10. 几种int类型的范围

    我们在编程的过程经常会遇到数据溢出的情况,于是这个时候我们必须定义能表示更大的数的数据类型来表示这个数. 下面列出了int型的范围: unsigned   int   0-4294967295    ...