#-*-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))
"Leetcode?python" Binary Watch