题目
696. 计数二进制子串
我的思路
满足要求的子串一定出现在0-1或者1-0变化的位置
所以记录每两次变化之间单一字符的数量即可。
我的实现
class Solution { public: int countBinarySubstrings(string s) { int preCount = 0; int Count = 0; int result = 0; int pos = 0; int length = s.size(); while(pos<length-1){ if(s[pos+1]!=s[pos]){ ++Count; result+=Count>preCount?preCount:Count; preCount = Count; Count = 0; }else{ ++Count; } ++pos; } if(pos>0){ if(s[pos]!=s[pos-1]){ result+=1; }else{ ++Count; result+=Count>preCount?preCount:Count; } } return result; } }; /* 满足要求的子串一定出现在0-1或者1-0变化的位置 所以记录每两次变化之间单一字符的数量即可。 */