47.leetcode36_valid_suduko

Posted vlice

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了47.leetcode36_valid_suduko相关的知识,希望对你有一定的参考价值。

1.题目分析

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.

2.题目分析

根据note可以知道,这并不是个数独问题。只需要检查在每行每列及每个九宫格内数字是否有重复出现的即可

3.解题思路

分别检查每行每列每个九宫格的数字是否重复。

Python代码(251ms)

class Solution(object):
    def isValidSudoku(self, board):
        """
        :type board: List[List[str]]
        :rtype: bool
        """
        temp1=[]
        temp2=[]
        for i in range(0,9):
            temp1.append([])
        for i in range(0,9):
            temp2.append([]) 
        #temp1储存每列数字  
        for i in range(0,9):
            for j in range(0,9):
                temp1[i].append(board[j][i])
        #temp2储存每个九宫格数字
        k=0
        for i in range(0,9,3):
            for j in range(0,9,3):
                for row in range(i,i+3):
                    for col in range(j,j+3):
                        temp2[k].append(board[row][col])
                k+=1
        print temp2
        #开始检查是否满足题目要求
        for i in range(0,9):
            if self.isValid(board[i])==False or self.isValid(temp1[i])==False or self.isValid(temp2[i])==False:
                return False
        return True
    #定义isValid函数检查是否合法
    def isValid(self,nums):
        temp=[]
        for i in range(0,9):
            if nums[i] not in temp and nums[i]!=.:
                temp.append(nums[i])
                continue
            else:
                if nums[i]==.:
                    continue
                return False
        return True

 



以上是关于47.leetcode36_valid_suduko的主要内容,如果未能解决你的问题,请参考以下文章

LintCode/LeetCode训练题目&答案详解—基础篇

__x__(36)0908第五天__背景 background

36 windows_37_windows_Sync

编写高质量代码:改善Java程序的151个建议(第3章:类对象及方法___建议36~40)

转载--编写高质量代码:改善Java程序的151个建议(第3章:类对象及方法___建议36~40)

ValueError:无法为具有形状“(?,4)”的张量“Placeholder_36:0”提供形状(4,)的值