题目来源:
leetcode题目,网址:696. 计数二进制子串 - 力扣(LeetCode)
解题思路:
首先对连续出现的相同字符进行计数,然后从第二个计数结果开始遍历所有计数结果,在遍历时,获得该计数结果与前一个计数结果中的较小值,最后对所有较小值求和即可。
解题代码:
class Solution {
public int countBinarySubstrings(String s) {
int lastDiff=0;
int thisOne=1;
int count=0;
for(int i=1;i<s.length();i++){
if(s.charAt(i)==s.charAt(i-1)){
thisOne++;
if(thisOne<=lastDiff)
count++;
}else{
count++;
lastDiff=thisOne;
thisOne=1;
}
}
return count;
}
}
总结:
官方题解是在获得当前字符连续个数后再将计算将其添加到总结果中,而我是对每一个字符进行一次判断。