Java实现 LeetCode 696 计数二进制子串(暴力)
2023-09-14 08:58:02 时间
696. 计数二进制子串
给定一个字符串 s,计算具有相同数量0和1的非空(连续)子字符串的数量,并且这些子字符串中的所有0和所有1都是组合在一起的。
重复出现的子串要计算它们出现的次数。
示例 1 :
输入: “00110011”
输出: 6
解释: 有6个子串具有相同数量的连续1和0:“0011”,“01”,“1100”,“10”,“0011” 和 “01”。
请注意,一些重复出现的子串要计算它们出现的次数。
另外,“00110011”不是有效的子串,因为所有的0(和1)没有组合在一起。
示例 2 :
输入: “10101”
输出: 4
解释: 有4个子串:“10”,“01”,“10”,“01”,它们具有相同数量的连续1和0。
注意:
s.length 在1到50,000之间。
s 只包含“0”或“1”字符。
class Solution {
public int countBinarySubstrings(String s) {
char[] chars = s.toCharArray();
int res = 0;
int cur = 1;
int pre = 0;
char value = chars[0];
for (int i = 1; i < chars.length; i++) {
//当前位和上一位不等的时候,就可以算作一次
if(value == chars[i])
++cur;
else {
if(pre > 0) {
res += Math.min(pre,cur);
}
pre = cur;
cur = 1;
}
value = chars[i];
}
if(pre > 0) res += Math.min(cur,pre);
return res;
}
}
相关文章
- elasticsearch批量插入数据的时候出现java.net.SocketTimeoutException: 30,000 milliseconds timeout on connection「建
- JAVA线程通信详解[通俗易懂]
- java 实现多态_Java多态的实现原理
- java图书馆新地址_最受Java开发者喜爱的5款开源IDE盘点
- Java 正则表达式:语法讲解和常用表达式汇总
- java redis锁_Java中Redis锁的实现[通俗易懂]
- java 流水线模式_流水线设计模式实现
- java的句柄_java获取窗口句柄
- Java集合面试题_java是什么
- 大数据必学Java基础(一百):员工管理系统开发
- Java一个工具类实现PDF加水印
- Java 中对象传入方法内赋值后,为何执行完方法后对象的值未改变呢?
- Java Spring 中你不知道的注入方式详解编程语言
- 编写高性能 Java 代码的最佳实践详解编程语言
- Java压缩或放大图像处理详解编程语言
- Java学习笔记之六java三种循环(for,while,do……while)的使用方法及区别详解编程语言
- Java NIO Channel to Channel Transfers通道传输接口详解编程语言
- MySQL与Java的强强联合:开启智能数据库时代(mysql和java)
- 代码Linux下编写Java代码的指南(linux编写java)
- Linux下Java编程之旅(linux执行java)
- 服务器使用Java进行Linux服务器监控(java监控linux)
- 实现Java实现Redis集合的技术研究(redis集合java)
- 时间设置Redis Java过期时间的最佳实践(redisjava过期)
- 时间Java中设置Redis键的过期时间(redisjava过期)
- Java导入Oracle 实现快速数据传输(java导入oracle)
- Oracle和Java结合,推出新一代商城系统(java oracle商城)
- Java中的static静态代码块的使用详解
- 在java中使用dom4j解析xml(示例代码)