aiaiask.com©

开花即结果 提问即答案

游游的字符串好子串计数问题:前缀0多于1的子串数量计算
原始问题:

游游的字符串好子串计数问题:前缀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作为结果。

代码如下:

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
游游的字符串好子串计数问题:前缀0多于1的子串数量计算
https://www.aiaiask.com/ask/46244.html
AI / 模型DeepSeek
时间 / DATESeptember 7, 2023, 7:41 PM
语言zh-CN
IP / 区域云南 昆明