LeetCode刷题记录6——696. Count Binary Substrings(easy)

LeetCode刷题记录6——696. Count Binary Substrings(easy)

目录

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++。

后记

感觉这种题目想法很容易有,但实现起来很困难,看来代码还是得练,光想没用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值