概述
二进制手表顶部有 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
最后
以上就是英勇巨人为你收集整理的【leetcode刷题】401. 二进制手表(toString/split/join)的全部内容,希望文章能够帮你解决【leetcode刷题】401. 二进制手表(toString/split/join)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复