Leetcode 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 '.'.

image.png

A partially filled sudoku which is valid.

Note: A valid Sudoku board (partially filled) is not necessarily solvable. Only the filled cells need to be validated.

数独合法性判断。

模拟题,直接用位运算代替hash了,注意细节问题不是太大。

class Solution {
public:
    bool isValidSudoku(vector<vector<char>>& board) {
        int cnt=0;
        for(int i=0;i<7;i+=3)
        {
            for(int j=0;j<7;j+=3)
            {   //9宫格
                int vis=0,vis1=0,vis2=0;
                for(int k=0;k<3;k++)
                    for(int l=0;l<3;l++)
                    {
                        if(board[i+k][j+l]=='.') continue;
                        if((1<<(board[i+k][j+l]-'0') & vis)==0)
                            vis|=(1<<(board[i+k][j+l]-'0'));
                        else
                            return false;
                    }
                for(int k=0;k<9;k++)
                {
                    if(board[cnt][k]!='.')
                    {
                        if((1<<(board[cnt][k]-'0') & vis2)==0)
                            vis2|=(1<<(board[cnt][k]-'0'));
                        else
                            return false;
                    }
                    if(board[k][cnt]!='.')
                    {
                        if((1<<(board[k][cnt]-'0') & vis1)==0)
                            vis1|=(1<<(board[k][cnt]-'0'));
                        else
                            return false;
                    }
                }
                cnt++;
            }
        }
        return true;
    }
};

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏人工智能LeadAI

在NVIDIA Jetson TX2上安装TensorFlow

刷机的目的是把Ubuntu操作系统和JetPack SDK安装到Jetson TX2上。刷机的操作按照官方教程即可,比较容易。这个过程中有一点需要注意:Jets...

38420
来自专栏linjinhe的专栏

LevelDB:整体架构

上图简单展示了 LevelDB 的整体架构。LevelDB 的静态结构主要由六个部分组成:

39630
来自专栏JetpropelledSnake

SNMP学习笔记之SNMPv3的报文格式以及基于USM的认证和加密过程

                                                                      图 1

48730
来自专栏大数据挖掘DT机器学习

用Python调用百度OCR接口实例

本文主要针对Python开发者,描述百度文字识别接口服务的相关技术内容。OCR接口提供了自然场景下整图文字检测、定位、识别等功能。文字识别的结果可以用于翻译、搜...

96650
来自专栏Java成神之路

hadoop_学习_00_资源帖

2.Hadoop安装教程_单机/伪分布式配置_CentOS6.4/Hadoop2.6.0

9220
来自专栏乐享123

What Do Cryptic Github Comments Mean?

16040
来自专栏bboysoul

acccheck的使用

介绍:一个基于微软SMB协议的口令攻击工具,IPC共享攻击工具 用法:acccheck + [选项] 参数:

9420
来自专栏腾讯移动品质中心TMQ的专栏

Android手机上用户操作模拟方法的研究与实现

一、 问题背景 最近研究了一下Android手机上用户操作的模拟方法, 有一些心得与大家分享下。 之所以去研究Android手机上用户操作的模拟方法,是因为最...

1.3K60
来自专栏lonelydawn的前端猿区

php绘制图片验证码

验证码是一种安全保护机制,在注册时要求必须有人工操作进行验证,用于防止垃圾注册机大量注册用户账号占用服务器内存从而使服务器瘫痪。 图片验证码的实现十分简单。首先...

36650
来自专栏Debian社区

Nginx 发布 mainline version 1.13.0

Nginx 发布了 mainline version 1.13.0(即通常说的开发版)。更新内容如下:

10850

扫码关注云+社区

领取腾讯云代金券