全零子串的数量

全零子串的数量

题目:全零子串的数量

给出一个只包含01的字符串str,请返回这个字符串中全为0的子字符串的个数

1<=|str|<=30000

示例:

输入:"00010011"
输出:9
解释:
"0"子字符串有5个,
"00"子字符串有3个,
"000"子字符串有1个。
所以返回9

代码

public class Solution {
    /**
     * @param str: the string
     * @return: the number of substrings 
     */
    public int stringCount(String str) {
        int l = str.length(),sum, res=0,j;
        for(int i=0; i<l; i++) 
        {
            if(str.charAt(i)=='0')
            {
                sum=0; j=i;
                while(j<l && str.charAt(j)=='0') {
                    j++;
                    sum++;
                }
                for(int k=1; k<=sum; k++) {
                    res+=k;
                }
                i=--j;
            }
        }

        return res;
    }
}
posted @ 2022-03-09 17:12  言思宁  阅读(72)  评论(0编辑  收藏  举报