题目
LC696
思路
https://www.cnblogs.com/cnoodle/p/13469190.html
思路非常规题
知识点
新建一个ArrayList(长度不确定的数组),来统计每个数字/字符连续出现的次数
- 普通数组 counts[i]
- ArrayList counts.get(i)
代码
class Solution {
public int countBinarySubstrings(String s) {
//数组,长度未知,统计每个数字连续出现的次数
List<Integer> counts = new ArrayList<Integer>();
int ptr = 0;
int n = s.length();
while(ptr < n){
char c = s.charAt(ptr);
int count = 0;
while(ptr < n && s.charAt(ptr) == c){
ptr++;
count++;
}
//跳出循环
counts.add(count);
}
int res = 0;
for(int i = 1; i < counts.size(); i++){
res += Math.min(counts.get(i), counts.get(i-1));
}
return res;
}
}