给一个字符串s,计算具有相同数字0和1的非空(连续)子字符串的数量,并且这些子字符串中的全部0和全部1被连续分组。子串发生多次被计数的次数。

来源:互联网 发布:软件授权使用说明书 编辑:程序博客网 时间:2024/06/14 23:45

本题源自leetcode  696

-----------------------------------------------------------------------------

思考:

代码:

int countBinarySubstrings(string s) {        /*        vector<int> rec;        int count = 1;        int n = s.length();        for(int i = 1; i <= n; i++){            if(s[i] == s[i-1])                count++;            else{                rec.push_back(count);                count = 1;            }        }        int res = 0;        for(int i = 1; i < rec.size(); i++){            res += min(rec[i],rec[i-1]);        }        return res;        */        int n = s.length();        int res = 0;        int cur = 1;        int pre = 0;        for(int i = 1; i < n; i++){            if(s[i] == s[i-1])                cur++;            else{                pre = cur;                cur = 1;            }            if(pre >= cur)                res++;        }        return res;    }


阅读全文
0 0
原创粉丝点击