【leetcode刷题】401. 二进制手表(toString/split/join)

二进制手表顶部有 4 个 LED 代表 小时(0-11),底部的 6 个 LED 代表 分钟(0-59)。每个 LED 代表一个 0 或 1,最低位在右侧。
给你一个整数 turnedOn ,表示当前亮着的 LED 的数量,返回二进制手表可以表示的所有可能时间。
小时不会以零开头:“01:00” 是无效的时间,正确的写法应该是 “1:00”。
分钟必须由两位数组成,可能会以零开头:“10:2” 是无效的时间,正确的写法应该是 “10:02” 。

思路】:遍历所有时间,转化为二进制,找出里面1满足turnedOn的时间,格式化输出。

var readBinaryWatch = function(turnedOn) {
    let res = []
    for(let i = 0; i < 12; i++){
        for(let j = 0;j < 60; j++){
            if(i.toString(2).split("0").join("").length + j.toString(2).split("0").join("").length == turnedOn){
                //格式化时间
                let h = i.toString()
                let m = j<10?"0"+j.toString():j.toString()
                res.push(h+":"+m)
            }
        }
    }
    return res
};

toString()

  • 可以把数字转化为二进制、八进制、十六进制字符。
let num = 7
console.log(num.toString(2))  //"111"

split()

  • 把字符串分割成字符串数组,不会改变原字符串
let a = "hello ha"
console.log(a.split(" "))  //["hello","ha"]
console.log(a.split())  //["h","e","l","l","o"," ","h","a"]

join()

  • 把数组中的所有元素拼接成字符串。
let fruits = ["Banana", "Orange", "Apple", "Mango"];
console.log(fruits.join(" and "))  //Banana and Orange and Apple and Mango
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值