バイナリleetcode-401を見ます
件名の説明:
バイナリ時計は時間(0-11)用LED 4組のトップ、分(0-59)のLED 6つの底部を有します。各LEDは、右側の最下位ビットを0または1を表します。非負の整数を与えN点灯数が現在の戻りをすべての可能な時間をLED表します。
参考:負の雪ミン朱
from itertools import combinations
class Solution:
def readBinaryWatch(self, num: int) -> List[str]:
def dfs(num,hour,res):
if hour > num: return
for hours in combinations([1,2,4,8],hour):
hs = sum(hours)
if hs >= 12: continue
for mints in combinations([1,2,4,8,16,32],num-hour):
ms = sum(mints)
if ms >= 60: continue
res.append("%d:%02d"%(hs,ms))
dfs(num,hour+1,res)
res = []
dfs(num,0,res)
return res
参考:学習のパンダの愛
from itertools import combinations
class Solution:
def readBinaryWatch(self, num: int) -> List[str]:
res = []
for h in range(12):
for m in range(60):
if (bin(h)+bin(m)).count('1') == num:
res.append("%d:%02d"%(h,m))
return res