首页 > 其他 > 详细

401. 二进制手表

时间:2021-06-21 23:44:26      阅读:20      评论:0      收藏:0      [点我收藏+]

二进制手表顶部有 4 个 LED 代表 小时(0-11),底部的 6 个 LED 代表 分钟(0-59)。每个 LED 代表一个 0 或 1,最低位在右侧。

例如,下面的二进制手表读取 "3:25" 。

技术分享图片

(图源:WikiMedia - Binary clock samui moon.jpg ,许可协议:Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) )

给你一个整数 turnedOn ,表示当前亮着的 LED 的数量,返回二进制手表可以表示的所有可能时间。你可以 按任意顺序 返回答案。

小时不会以零开头:

例如,"01:00" 是无效的时间,正确的写法应该是 "1:00" 。
分钟必须由两位数组成,可能会以零开头:

例如,"10:2" 是无效的时间,正确的写法应该是 "10:02" 。
 

示例 1:

输入:turnedOn = 1
输出:["0:01","0:02","0:04","0:08","0:16","0:32","1:00","2:00","4:00","8:00"]
示例 2:

输入:turnedOn = 9
输出:[]

提示:

0 <= turnedOn <= 10

方法一: 二进制枚举法

class Solution:
    def readBinaryWatch(self, turnedOn: int) -> List[str]:
        # 二级制枚举法
        res = []
        for h in range(12):
            for m in range(60):
                # 判断小时1的个数 + 分钟1的个数 =  trunedOn -> 符合
                if str(bin(h)).count(1) + str(bin(m)).count(1) == turnedOn:
                    res.append(f{h}:{m:02d}) # h如果1位无需补0, m需要补0
        
        return res

 

401. 二进制手表

原文:https://www.cnblogs.com/yunxintryyoubest/p/14915911.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!