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

数字 1-9 在每一行只能出现一次。
数字 1-9 在每一列只能出现一次。
数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。

上图是一个部分填充的有效的数独。

数独部分空格内已填入了数字,空白格用 '.' 表示。

示例 1:

输入:
[
  ["5","3",".",".","7",".",".",".","."],
  ["6",".",".","1","9","5",".",".","."],
  [".","9","8",".",".",".",".","6","."],
  ["8",".",".",".","6",".",".",".","3"],
  ["4",".",".","8",".","3",".",".","1"],
  ["7",".",".",".","2",".",".",".","6"],
  [".","6",".",".",".",".","2","8","."],
  [".",".",".","4","1","9",".",".","5"],
  [".",".",".",".","8",".",".","7","9"]
]
输出: true
示例 2:

输入:
[
  ["8","3",".",".","7",".",".",".","."],
  ["6",".",".","1","9","5",".",".","."],
  [".","9","8",".",".",".",".","6","."],
  ["8",".",".",".","6",".",".",".","3"],
  ["4",".",".","8",".","3",".",".","1"],
  ["7",".",".",".","2",".",".",".","6"],
  [".","6",".",".",".",".","2","8","."],
  [".",".",".","4","1","9",".",".","5"],
  [".",".",".",".","8",".",".","7","9"]
]
输出: false
解释: 除了第一行的第一个数字从 5 改为 8 以外,空格内其他数字均与 示例1 相同。
     但由于位于左上角的 3x3 宫内有两个 8 存在, 因此这个数独是无效的。
说明:

一个有效的数独(部分已被填充)不一定是可解的。
只需要根据以上规则,验证已经填入的数字是否有效即可。
给定数独序列只包含数字 1-9 和字符 '.' 。
给定数独永远是 9x9 形式的。

class Solution(object):def isValidSudoku(self, board):""":type board: List[List[str]]:rtype: bool"""#首先初始化rows = [{} for i in range(9)]cols = [{} for i in range(9)]areas = [{} for i in range(9)]#遍历for i in range(9):for j in range(9):num = board[i][j]if(num!='.'):#赋值index = (i//3)*3+j//3rows[i][num] = rows[i].get(num,0)+1cols[j][num] = cols[j].get(num,0)+1areas[index][num] = areas[index].get(num,0)+1#判断是否合规if rows[i][num]>1 or cols[j][num]>1 or areas[index][num]>1:return Falsereturn True

leetcode力扣36.有效的数独相关推荐

  1. 力扣 #36.有效的数独 JAVA实现

    36.有效的数独 题目:请你判断一个 9 x 9 的数独是否有效.只需要 根据以下规则 ,验证已经填入的数字是否有效即可. 数字 1-9 在每一行只能出现一次. 数字 1-9 在每一列只能出现一次. ...

  2. 力扣—— 36. 有效的数独/37. 解数独

    目录 有效的数独 解数独 有效的数独 class Solution10(object):def isValidSudoku(self, board):""":type b ...

  3. 力扣--36有效的数独

    题目 python代码 将所给的二位数组按照行.列.块,分别存储到对应的列表中,只需要看该列表中的每个元素的长度是否等于去重以后的长度即可. def isValidSudoku(self,board) ...

  4. 手把手带你刷Leetcode力扣 学习总结

    文章目录 1. 总体规划 2. 算法复杂度 2.1 时间复杂度 2.2 空间复杂度 3. 数据结构 3.1 数组[Array] 3.1.1 Python常用操作 3.1.2 Java常用操作 3.1. ...

  5. 《LeetCode力扣练习》剑指 Offer 30. 包含min函数的栈 Java

    <LeetCode力扣练习>剑指 Offer 30. 包含min函数的栈 Java 一.资源 题目: 定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调 ...

  6. 《LeetCode力扣练习》剑指 Offer 29. 顺时针打印矩阵 Java

    <LeetCode力扣练习>剑指 Offer 29. 顺时针打印矩阵 Java 一.资源 题目: 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字. 示例 1: 输入:matr ...

  7. 《LeetCode力扣练习》第96题 不同的二叉搜索树 Java

    <LeetCode力扣练习>第96题 不同的二叉搜索树 Java 一.资源 题目: 给你一个整数 n ,求恰由 n 个节点组成且节点值从 1 到 n 互不相同的 二叉搜索树 有多少种?返回 ...

  8. 《LeetCode力扣练习》剑指 Offer 28. 对称的二叉树 Java

    <LeetCode力扣练习>剑指 Offer 28. 对称的二叉树 Java 一.资源 题目: 请实现一个函数,用来判断一棵二叉树是不是对称的.如果一棵二叉树和它的镜像一样,那么它是对称的 ...

  9. 《LeetCode力扣练习》剑指 Offer 27. 二叉树的镜像 Java

    <LeetCode力扣练习>剑指 Offer 27. 二叉树的镜像 Java 一.资源 题目: 请完成一个函数,输入一个二叉树,该函数输出它的镜像. 例如输入: 4 / 2 7 / \ / ...

最新文章

  1. 决策树算法(二)——构建数据集
  2. Selenium的默认配置文件和创建自己的配置文件
  3. c语言字符串数组的合并,C语言实现合并字符串
  4. [转]linux各文件夹介绍
  5. mediawiki java_使用MediaWiki 1.16.0实现添加媒体向导
  6. MapReduce案例一:天气温度
  7. TensorFlow tf.random.categorical
  8. Android系统搜索对话框(浮动搜索框)的使用
  9. linux 上自动执行caffe,linux下caffe的命令运行脚本
  10. 苹果手机密码设置在哪里_oppo怎么设置SIM密码-oppo手机SIM卡密码设置详细教程
  11. vm12装xp系统步骤
  12. 【Qt】动态刷新lcdNumber显示的值
  13. 四川大学图书情报档案专业考研经验贴(2022.9.16已更新)
  14. python调用程序call_Python调用外部程序——os.system()和subprocess.call()
  15. JAVA基础篇(1)
  16. c#考试,答题系统制作(窗体)
  17. SQL注入POST注入
  18. 蓝筹股获利回吐,13000点得而复失
  19. JavaScript常用工具方法封装
  20. 菜鸟教程 http://www.runoob.com/

热门文章

  1. Marco:Filecash全网算力增加的趋势,将形成FIC价格上升的良性循环
  2. SAP License:工程设备采购倒扣备品价
  3. MySQL高级知识(七)——索引面试题分析
  4. 纽约州交通事故数据可视化
  5. log4j.properties配置与将异常输出到Log日志文件实例
  6. 【LOJ】 #2521. 「FJOI2018」领导集团问题
  7. 前端MVC学习总结(三)——AngularJS服务、路由、内置API、jQueryLite
  8. 编写高质量JS代码上
  9. requireJS(一)
  10. 关于xp操作系统下使用VC6++编写的上位机软件在win10中运行的问题