如何在Javascript中统计连续4个0的序列数量?
统计数组中连续4个0的段数
实现思路
- 用两个变量分别跟踪当前连续0的个数和符合要求的段数,初始都设为0。
- 逐个遍历数组元素:
- 碰到0就累加当前连续计数;
- 碰到非0元素时,先检查之前攒的连续0数量是否≥4,是的话就把段数加1,然后重置连续计数;
- 遍历结束后别忘了检查最后一段连续0——如果数组以连续0结尾,循环里不会触发非0判断,得单独处理。
代码实现
function countZeroSegments(arr) { let currentZeroCount = 0; let validSegmentCount = 0; for (const num of arr) { if (num === 0) { currentZeroCount++; } else { if (currentZeroCount >= 4) { validSegmentCount++; } currentZeroCount = 0; } } // 处理数组末尾的连续0段 if (currentZeroCount >= 4) { validSegmentCount++; } return validSegmentCount; }
测试验证
// 测试示例1 const arr1 = [0, 0, 0, 0, 1]; console.log(countZeroSegments(arr1)); // 输出:1 // 测试示例2 const arr2 = [0, 0, 0, 0, 1, 0, 0, 0, 0]; console.log(countZeroSegments(arr2)); // 输出:2 // 额外测试:数组末尾是5个连续0 const arr3 = [1, 0, 0, 0, 0, 0]; console.log(countZeroSegments(arr3)); // 输出:1 // 额外测试:不足4个的连续0不计入 const arr4 = [0,0,0,1,0,0,0,0]; console.log(countZeroSegments(arr4)); // 输出:1
内容的提问来源于stack exchange,提问作者Deleso
相关产品推荐
相关产品推荐

