zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    c/c++字符串传递
    从一个小程序明白new和delete的奇特现象
    Linux下构造函数string需要注意的问题
    字符串转time_t
    CentOS7基础建站指南(笔记)
    图与搜索
    面向的对象编程的小猫腻
    多线程编程
    生产者消费者模式-Java实现
    Java-代理模式的理解
  • 原文地址:https://www.cnblogs.com/19991201xiao/p/8491006.html
Copyright © 2011-2022 走看看