方法一:
记录下相同字母出现的个数,如果前一个字母出现的个数大于等于当前字母出现的个数,则说明只存在一种以当前元素结尾的情况,此时+1,整个算法从前往后遍历一遍即可,n的复杂度。。
class Solution {
public:
int countBinarySubstrings(string s) {
//pre记录前面一组的个数,cur记录当前个数
int pre = 0, cur = 1, total = 0;
for (int i = 1; i < s.length(); i++){
if (s[i] == s[i - 1]) cur++;
else{
pre = cur;
cur = 1;
}
if (pre >= cur) {
total++;
}
}
return total;
}
};