题目的链接在这里:https://leetcode-cn.com/problems/count-binary-substrings/
题目大意
给定一个字符串 s,计算具有相同数量 0 和 1 的非空(连续)子字符串的数量,并且这些子字符串中的所有 0 和所有 1 都是连续的。重复出现的子串要计算它们出现的次数。
一、示意图
二、解题思路
第一种思路就是找到分界点进行扩大范围的比较
分界点
代码如下:
class Solution {
public int countBinarySubstrings(String s) {
//我感觉他的思路就是 直接判断这个数值 然后找他第一个位置到第二个位置之间的距离
//第一种方法是找到分界点进行中心扩散
int result=0;
char[] chars = s.toCharArray();
//开始找分界点
for(int i=0;i<chars.length-1;i++){
if(chars[i]!=chars[i+1]){
int l=i;
int r=i+1;
//根据分界点向两边扩散
//和那道题一样啊
while (l>=0&&r<chars.length&&chars[l]==chars[i]&&chars[r]==chars[i+1]){
//说明当前这个就可以
result++;
//然后进行扩充
l--;
r++;
}
}
}
return result;
}
}