一个字符串,仅仅有0和1两个字符组成,如果前后两个1没有被0间隔,我们称之为连1,请编写函数,计算给定一个这样的字符串,算出最大连1次。用java编写
时间: 2024-10-15 20:22:07 浏览: 21
在Java中,你可以创建一个简单的函数来解决这个问题。这个函数会遍历输入的字符串,维护一个变量来跟踪当前的连续1的数量,同时检查是否有0中断了连续的1。当遇到下一个1时,更新连续计数并将其与之前的最大值进行比较。最后返回最大连续1的次数。
```java
public class Main {
public static void main(String[] args) {
System.out.println(findMaxConsecutiveOnes("1101101")); // 输出:3
}
public static int findMaxConsecutiveOnes(String s) {
if (s == null || s.isEmpty()) {
return 0;
}
int maxCount = 0;
int currentCount = 0;
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
if (c == '1') {
currentCount++;
if (i > 0 && s.charAt(i - 1) == '0') { // 判断是否连续
maxCount = Math.max(maxCount, currentCount); // 更新最大值
currentCount = 1; // 重新开始计数
}
} else {
currentCount = 0; // 遇到0,重置计数
}
}
// 如果字符串结束时是连续的1,也需要考虑
if (currentCount > 0) {
maxCount = Math.max(maxCount, currentCount);
}
return maxCount;
}
}
```
在这个函数中,`findMaxConsecutiveOnes`接收一个字符串`s`作为参数,并返回字符串中最大的连续1的数量。它首先处理边界情况,然后逐个字符检查,利用`Math.max`保证每次更新最大值都是当前的最大值或新的连续1的长度。
阅读全文