首页 > 解决方案 > 编写一个函数,返回二进制字符串中最长的连续零序列

问题描述

//Write a function that returns the longest sequence of consecutive zeroes in a binary string.

var arr = [];

function zeroflow(str) {
  for (var i = 0; i < str.length; i++) {
    if (str[i] == 0) {

      var g = i + 1
      do {
        g++;
      } while (str[g] == 0);
      arr.push(g - i);
    }
  }
  return arr;
}

document.write(zeroflow("00010000"));

console.log(arr);

我的目标是生成一个存储所有连续零序列的数组,然后选择数组中的最大数以找到最长的序列,但现在这个函数甚至没有生成正确的数组。(控制台日志显示“3, 2,6,4,3,2,2" 我正在寻找基本和简单的方法,非常感谢您的建议。

标签: javascriptarrays

解决方案


您可以split在 1 上sortpop并返回长度:

function zeroflow(str) {
  return str.split('1').sort().pop().length;
}

console.log(zeroflow("00010000"));
console.log(zeroflow("1000100001"));
console.log(zeroflow("000"));
console.log(zeroflow("1"));
console.log(zeroflow(""));


推荐阅读