专栏首页Petrichor的专栏leetcode: 36. Valid Sudoku

leetcode: 36. Valid Sudoku

Problem

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

AC

class Solution():
    def isValidSudoku(self, board):
        for i in range(9):
            if not self.isValidList([board[i][j] for j in range(9)]) or not self.isValidList([board[j][i] for j in range(9)]):
                return False
        for m in range(3):
            for n in range(3):
                if not self.isValidList([board[i][j] for i in range(m*3, m*3+3) for j in range(n*3, n*3+3)]):
                    return False
        return True

    def isValidList(self, xs):
        tmp = list(filter(lambda x : x != ".", xs))
        return len(tmp) + 1 == len(set(xs))


if __name__ == "__main__":
    board = [[1, '.', '.', '.', '.', '.', '.', '.', '.'],
             ['.', 2, '.', '.', '.', '.', '.', '.', '.'],
             ['.', '.', 3, '.', '.', '.', '.', '.', '.'],
             ['.', '.', '.', 4, '.', '.', '.', '.', '.'],
             ['.', '.', '.', '.', 5, '.', '.', '.', '.'],
             ['.', '.', '.', '.', '.', 6, '.', '.', '.'],
             ['.', '.', '.', '.', '.', '.', 7, '.', '.'],
             ['.', '.', '.', '.', '.', '.', '.', 8, '.'],
             ['.', '.', '.', '.', '.', '.', '.', '.', 9]]
    assert Solution().isValidSudoku(board)

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

我来说两句

0 条评论
登录 后参与评论

相关文章

  • leetcode: 17. Letter Combinations of a Phone Number

    JNingWei
  • leetcode: 37. Sudoku Solver

    …and its solution numbers marked in red.

    JNingWei
  • leetcode: 27. Remove Element

    JNingWei
  • ES Module

    惟一作用是让浏览代码变得容易一些,迅速找到指定模块,根本原因是单文件内容太长,已经遇到了维护的麻烦,所以手动插入一些锚点供快速跳转

    ayqy贾杰
  • 模糊C均值聚类算法(FCM)

    模糊聚类算法是一种基于函数最优方法的聚类算法,使用微积分计算技术求最优代价函数.在基于概率算法的聚类方法中将使用概率密度函数,为此要假定合适的模型.模糊聚类算法...

    AIHGF
  • 产品资讯|互联网人小长假出行指南!

    以往想要达到足不出户就与各地美景合影留念的目的,只能用传统的P图软件,耗时耗力不说,效果也是因个人技术而定,很难掌握。人像分割技术能够帮你轻松解决以上问题。

    优图实验室
  • Python爬虫之requests库入门requests库的get方法理解requests库的异常爬去网页通用的代码框架resquests库主要方法的解析

    网络爬虫就是提取网页的信息。 网络爬虫的原则就是谨记“the website is API”,就是我们所面对的对象和信息来源都是各个website。现在pyt...

    desperate633
  • 腾讯广点通:基于深度学习的图像语义分析及其应用

    用户1737318
  • 常见动态规划的解决思路

    给定一个词的集合words,使用badness(i,j)表示使用的单词是words[i,j]

    爬蜥
  • 从一张风景照中就学会的SinGAN模型,究竟是什么神操作?| ICCV 2019最佳论文

    作者 | 王红成,中国海洋大学-信息科学与工程学院-计算机技术-计算机视觉方向研究生,研二在读,目前专注于生成对抗网络的研究

    AI科技大本营

扫码关注云+社区

领取腾讯云代金券