前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >leetcode: 36. Valid Sudoku

leetcode: 36. Valid Sudoku

作者头像
JNingWei
发布2018-09-27 17:07:32
5030
发布2018-09-27 17:07:32
举报

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)
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017年11月11日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Problem
  • AC
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档