javascript - 编写一个函数,返回二进制字符串中最长的连续零序列
问题描述
//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" 我正在寻找基本和简单的方法,非常感谢您的建议。
解决方案
您可以split
在 1 上sort
,pop
并返回长度:
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(""));
推荐阅读
- dataframe - 如何使用来自另一个数据帧的随机值更新 PySpark 中的数据帧?
- python - 在第二帧中添加后退按钮(Tkinter)
- elasticsearch - 弹性搜索加入
- webpack - React + Material UI + Storybook + Yarn Monorepo - 主题恢复默认
- c# - 带有 Oracle.EntityFrameworkCore 提供程序的 Scaffold-DbContext 不会创建 ICollection 属性
- vba - Outlook 启动宏执行结果与手动启动复制不同
- java - Spring Boot 2.x 报告 java.lang.IllegalStateException: Unable to process parts 因为没有提供多部分配置
- r - 如何在R的列中插入文件名
- java - 在java中列出事物组中的所有事物
- firebase - 我应该使用哪个 firebase 数据库?