游游的字符串好子串计数问题:前缀0多于1的子串数量计算
思路:
1. 初始化计数器count为0,用于记录好子串的数量。
2. 初始化两个指针left和right,分别表示当前子串的左右边界。
3. 遍历字符串中的每个字符,根据字符的值更新left和right指针。
4. 如果遇到'0',则将left指针向右移动一位,并将count加1。
5. 如果遇到'1',则将right指针向右移动一位,并检查left指针是否大于等于right指针,如果是,则将count减1。
6. 遍历结束后,返回count作为结果。
代码如下:
```python
def count_good_substrings(s: str) -> int:
count = 0
left = 0
right = 0
while right < len(s):
if s[right] == '0':
left = right + 1
count += 1
elif left >= right:
count -= 1
right += 1
return count
# 测试
s = "00110"
print(count_good_substrings(s)) # 输出:3
```
创作工场
免责声明:
以上内容除特别注明外均来源于网友提问,创作工场回答,未经许可,严谨转载。
点击这里>>使用🔥专业版,更聪明、更完整、更原创!