大家好,我是顺亿。今天我们来聊聊LeetCode上的一个有趣问题——696. 计数二进制子串。这个题目其实考察的是对二进制字符串的理解和计数技巧。读完这篇文章,你将学会如何用简单的方法解决这个问题。
问题分析
题目要求我们找出一个二进制字符串中,连续的0和1的数目相同的子串个数。比如,字符串“111001011”中,我们可以找到“11”和“101”这样的子串。
解题思路
一开始可能觉得这个题目有点难,但其实思路很简单。我们可以按照以下步骤来解决这个问题:
- 将字符串中的连续0或1分组,并计算每个组的长度。
- 遍历这些长度,计算相邻两个长度中较小的一个,然后将它们相加。
代码实现
class Solution {
public int countBinarySubstrings(String s) {
int len=s.length();
int tem=0;
int result=0;
int last=0;
while(tem这段代码中,我们首先遍历字符串,计算每个连续的0或1的长度,并将它们存储在变量中。然后,我们遍历这些长度,计算相邻两个长度中较小的一个,并将它们相加,最终得到结果。
总结与拓展
通过这个问题的解决,我们可以学习到如何将复杂问题简单化,以及如何利用数学方法来解决问题。如果你对编程有更多疑问,欢迎关注「趣航编程网」(www.vqhf.com),这里有更多有趣的技术文章等你来发现。
——顺亿 敬上
