zoukankan      html  css  js  c++  java
  • 【leetcode❤python】Binary Watch

    #-*- coding: UTF-8 -*-
    from itertools import combinations


    class Solution(object):
        
        hourList=[8,4,2,1]
        minList=[32,16,8,4,2,1]
        
        
        def selectHour(self,hourNum):
            if hourNum==0:
                return [0]
            #迭代工具模块包含了操做指定的函数用于操作迭代器
            selectHourList=[]
            hourCombin=list(combinations(self.hourList, hourNum))
            for combine in hourCombin:
                sumT=sum(combine)
                if(sumT<=12):
                    selectHourList.append(sumT)

            return selectHourList
        
        def selectMinute(self,minNum):
            if minNum==0:return [0]
            #迭代工具模块包含了操做指定的函数用于操作迭代器
            selectMinList=[]
            
            minCombin=list(combinations(self.minList, minNum))
            for combine in minCombin:
                sumT=sum(combine)
                if(sumT<=59):
                    selectMinList.append(sumT)

            return selectMinList
        
        def combinHourMin(self,hourList,minList):

            #直接使用for循环就可以了
            resultsList=[]
            for hour in hourList:
                for min in minList:
     
                    minStr=str(min) if len(str(min))>1 else ('0'+str(min))
     
                    strTmp=str(hour)+':'+minStr
     
                    resultsList.append(strTmp)
         
            return resultsList
        def handleResult(self,resultsList):
            reList=[]
            for item in resultsList:
                for i in item:
                    reList.append(i)
            return reList
        
        def readBinaryWatch(self, num):
            if(num>8):
                return
    #        elif(num<=0):
    #            return '0:00'
            maxHours=3 if num>=3 else num
            maxMinutes=5
            hourLeastNum=0 if (num-maxMinutes)<=0 else (num-maxMinutes)
            
            resultsList=[]

            for hourNum in range(hourLeastNum,maxHours+1):

                selectHourList=self.selectHour(hourNum)
                selectMinList=self.selectMinute(num-hourNum)
                resultsList.append(self.combinHourMin(selectHourList,selectMinList))

            return self.handleResult(resultsList)
        
    sol=Solution()
    print sol.readBinaryWatch(num=0)
    print len(sol.readBinaryWatch(num=0))
             

  • 相关阅读:
    Digital Video Stabilization and Rolling Shutter Correction using Gyroscope 论文笔记
    Distortion-Free Wide-Angle Portraits on Camera Phones 论文笔记
    Panorama Stitching on Mobile
    Natural Image Stitching with the Global Similarity Prior 论文笔记 (三)
    Natural Image Stitching with the Global Similarity Prior 论文笔记(二)
    Natural Image Stitching with the Global Similarity Prior 论文笔记(一)
    ADCensus Stereo Matching 笔记
    Efficient Large-Scale Stereo Matching论文解析
    Setting up caffe on Ubuntu
    Kubernetes配置Secret访问Harbor私有镜像仓库
  • 原文地址:https://www.cnblogs.com/kwangeline/p/5953683.html
Copyright © 2011-2022 走看看