目录
LeetCode刷题记录6——696. Count Binary Substrings(easy)
题目
语言
思路
后记
题目给定一个只包含0、1的字符串,要你算出这个字符串中,相同个数的0、相同个数的1组成的连续的子字符串有多少个,比如给定00110011,那么从头开始算:0011算一个,因为0连续出现了2次而后1连续出现了2次,01算一个,因为0连续出现了1次而后1连续的出现了1次……。
Java
用count表示返回的几种。此题的核心思想就是要记录之前的数字重复了多少次,假如我知道之前的数字1出现了3次,那么之后的0如果出现1次,那么count就加1,当0出现超过3次后,count就每必要加1了。
用pre来记录之前的数字出现了几次,初值设为0;用cur表示当前数字出现了几次。先依次比较相邻两数是否相等,如果相等,那么cur就加1;如果不相等,那么就说明“连续就断了”,那么就应该把当前cur赋值给pre,cur重复位为1。如果pre>=cur,那么count++。
感觉这种题目想法很容易有,但实现起来很困难,看来代码还是得练,光想没用。