我是靠谱客的博主 英勇巨人,最近开发中收集的这篇文章主要介绍【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

最后

以上就是英勇巨人为你收集整理的【leetcode刷题】401. 二进制手表(toString/split/join)的全部内容,希望文章能够帮你解决【leetcode刷题】401. 二进制手表(toString/split/join)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(50)

评论列表共有 0 条评论

立即
投稿
返回
顶部