声明:

今天是第88道题。二进制手表顶部有 4 个 LED 代表小时(0-11),底部的 6 个 LED 代表分钟(0-59)。每个 LED 代表一个 0 或 1,最低位在右侧,给定一个非负整数 代表当前 LED 亮着的数量,返回所有可能的时间。以下所有代码经过楼主验证都能在LeetCode上执行成功,代码也是借鉴别人的,在文末会附上参考的博客链接,如果侵犯了博主的相关权益,请联系我删除

(手动比心ღ( ´・ᴗ・` ))

正文

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

例如,上面的二进制手表读取 “3:25”。

给定一个非负整数 代表当前 LED 亮着的数量,返回所有可能的时间。

案例:

输入: n = 1
返回: ["1:00", "2:00", "4:00", "8:00", "0:01", "0:02", "0:04", "0:08", "0:16", "0:32"]

注意事项:

  • 输出的顺序没有要求。
  • 小时不会以零开头,比如 “01:00” 是不允许的,应为 “1:00”。
  • 分钟必须由两位数组成,可能会以零开头,比如 “10:2” 是无效的,应为 “10:02”。

解法1。注意根据题意,该手表是12小时制的手表,也就是说上面4个小时的灯不可能全亮,最大也就是1011的情况,所以设置2个变量分别为时h和分m,遍历所有组合的情况,判断条件就是其二进制1的个数相加等于输入的num,代码如下。

  • (bin(h)+bin(m)).count('1'):这里2个bin相加是类似于字符串的连接,不是数学上的加法

执行用时: 28 ms, 在Binary Watch的Python提交中击败了95.59% 的用户

class Solution(object):def readBinaryWatch(self, num):""":type num: int:rtype: 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

解法2。一共10位,范围就是0-1023,所以遍历这1024个数,找到合理的数(小时数小于12,分钟数小于60且满足对应二进制数中1的个数等于num),代码如下。

执行用时: 28 ms, 在Binary Watch的Python提交中击败了95.59% 的用户

class Solution(object):def readBinaryWatch(self, num):""":type num: int:rtype: List[str]"""res = []for i in range(1024):if bin(i).count('1') == num:h, m = i>>6, i&0x3f    # 分别取i的高4位即小时位,和i的低6位即分钟位if h < 12 and m < 60:res.append("%d:%02d"%(h,m))return res

结尾

解法1&解法2:https://blog.csdn.net/u012965373/article/details/53317141

【LeetCode 简单题】88-二进制手表相关推荐

  1. LeetCode简单题之二进制矩阵中的特殊位置

    题目 给你一个大小为 rows x cols 的矩阵 mat,其中 mat[i][j] 是 0 或 1,请返回 矩阵 mat 中特殊位置的数目 . 特殊位置 定义:如果 mat[i][j] == 1 ...

  2. LeetCode简单题之二进制表示中质数个计算置位

    题目 给你两个整数 left 和 right ,在闭区间 [left, right] 范围内,统计并返回 计算置位位数为质数 的整数个数. 计算置位位数 就是二进制表示中 1 的个数. 例如, 21 ...

  3. leetcode 简单题合集(Java版)

    326. 3的幂 https://leetcode-cn.com/problems/power-of-three/ 题解: class Solution {public boolean isPower ...

  4. leetcode python3 简单题88. Merge Sorted Array

    1.编辑器 我使用的是win10+vscode+leetcode+python3 环境配置参见我的博客: 链接 2.第八十八题 (1)题目 英文: Given two sorted integer a ...

  5. LeetCode简单题之基于排列构建数组

    题目 给你一个 从 0 开始的排列 nums(下标也从 0 开始).请你构建一个 同样长度 的数组 ans ,其中,对于每个 i(0 <= i < nums.length),都满足 ans ...

  6. LeetCode简单题之Excel 表中某个范围内的单元格

    题目 Excel 表中的一个单元格 (r, c) 会以字符串 "" 的形式进行表示,其中: 即单元格的列号 c .用英文字母表中的 字母 标识. 例如,第 1 列用 'A' 表示, ...

  7. LeetCode简单题之增量元素之间的最大差值

    题目 给你一个下标从 0 开始的整数数组 nums ,该数组的大小为 n ,请你计算 nums[j] - nums[i] 能求得的 最大差值 ,其中 0 <= i < j < n 且 ...

  8. LeetCode简单题之设计 Goal 解析器

    题目 请你设计一个可以解释字符串 command 的 Goal 解析器 .command 由 "G"."()" 和/或 "(al)" 按某种 ...

  9. LeetCode简单题之检查两个字符串数组是否相等

    题目 给你两个字符串数组 word1 和 word2 .如果两个数组表示的字符串相同,返回 true :否则,返回 false . 数组表示的字符串 是由数组中的所有元素 按顺序 连接形成的字符串. ...

最新文章

  1. Centos 7最小化系统安装设置IP(ifconfig命令)
  2. vector机器人 CAN I USE MULTIPLE VECTORS OR DEVICES? 我可以使用多个向量或设备吗?
  3. 【最新阿里-京东-美团-滴滴-面试题及答案】
  4. commit与rollback命令
  5. 不从事编程、学python有用吗-为什么你觉得C语言什么都不能做,学了没用?不可能的...
  6. android锁屏显示应用程序,今日应用:微软又给 Android 做了一款锁屏应用
  7. 【渝粤教育】 广东开放大学 10548_金融学k1_21秋考试
  8. 老李分享:HTTP session原理及应用 1
  9. dao generator for php and mysql_mybatis generator 自动生成dao层映射代码
  10. 如何实现百万TPS?详解JMQ4的存储设计
  11. Android 布局系列篇
  12. jQuery使table表格隔行显示不同颜色
  13. 离散数学杜忠复版答案_离散数学第2版答案
  14. JavaScript Debugger 原理
  15. 国内工业软件排行榜、市场份额与主要玩家
  16. nar神经网络_NAR 神经网络多步和单步预测
  17. SAP标准功能重复制造计划编制表实现生产排产初步分析
  18. 程序员过完年第一天上班被公司劝退!得知原因后,网友:被安排了
  19. 数据库的“读写分离”
  20. 九章云极DataCanvas公司深度参编《中国金融科技发展报告2021》蓝皮书

热门文章

  1. DB2 表空间之SMS、DMS
  2. 发票模板,纯css+html
  3. 简单理解REST风格
  4. navicat int长度自动变成0
  5. 13.8 - 软件测试工作量及成本估算 3.9 - 软件测试成本估算示例
  6. oracle如何取当前日期年月_Oracle 中列出当前年所有日期和当前月所有日期
  7. 如何使用Certbot独立模式检索在CentOS 7上加密SSL证书
  8. HBuilder ,及自用主题
  9. iOS 二维码扫描和成像,成像带小图标 自定义色值
  10. [HihoCoder]#1038 : 01背包