二进制JavaScript中1s之间的最长距离
我们需要编写一个以正整数(例如n)表示的JavaScript函数。该函数应找到并返回n的二进制表示形式中任意两个相邻1之间的最长距离。
如果没有两个相邻的1,那么我们必须返回0。
如果只有1将0分隔开,则两个1相邻(可能没有0)。两个1之间的距离是它们的位位置之间的绝对差。例如,“1001”中的两个1的距离为3。
例如-
如果输入为22,则输出应为2,
因为,
22的二进制代码是10110
相邻的第一对1是距离为2的“10110”。
第二个相邻的1对是距离为1的“10110”。
答案是这两个距离中最大的一个,即2。
请注意,“10110”不是有效的对,因为用1分隔带下划线的两个1。
示例
const num = 22;
const binaryGap = (num = 1) => {
let last = -1;
let ans = 0; //仔细检查
for (let i = 0; i < 32; i++) {
// check whether the bit is `1`. //
if true, calculate the longest distance with
//如果先前找到“1”,则返回上一个“1”。
if ((num >> i) & 1 > 0) {
if (last >= 0) {
ans = Math.max(ans, i - last);
}
last = i;
}
}
return ans;
};
console.log(binaryGap(num));输出结果
控制台中的输出将是-
2
热门推荐
7 简短的二胎祝福语
10 简短霸气女儿生日 祝福语
11 祝福语高考小众诗句简短
12 元旦祝福语20秒简短
13 老师过年祝福语大全 简短
14 一生祝福语简短
15 产检祝福语简短霸气
16 朋友店开张祝福语简短
17 生日爱情祝福语大全简短
18 朋友女儿生日祝福语 简短