计算只含'0'和'1'字符串中满足所有前缀'0'数量严格大于'1'数量的子串数量
思路:
1. 初始化计数器count为0,前缀和prefixSum为0。
2. 遍历字符串中的每个字符:
a. 如果当前字符是'0',则将prefixSum加1,并检查是否满足条件(prefixSum > count)。如果满足条件,将count加1;否则,将count重置为1。
b. 如果当前字符是'1',则将prefixSum减1。
3. 遍历结束后,返回count作为结果。
Java代码如下:
```java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String input = scanner.nextLine();
System.out.println(countGoodSubstrings(input));
}
public static int countGoodSubstrings(String input) {
int count = 0;
int prefixSum = 0;
for (int i = 0; i < input.length(); i++) {
char c = input.charAt(i);
if (c == '0') {
prefixSum++;
if (prefixSum > count) {
count++;
} else {
count = 1;
}
} else {
prefixSum--;
}
}
return count;
}
}
```
免责声明:
以上内容除特别注明外均来源于网友提问,创作工场回答,未经许可,严谨转载。