zoukankan      html  css  js  c++  java
  • Java实现 LeetCode 696 计数二进制子串(暴力)

    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;
        }
    }
    
  • 相关阅读:
    Struts2 语法--action
    react ref获取dom对象
    react 简单的用函数调出ui显示
    express.js graphql express-graphql
    Nestjs 增加全局前缀
    react使用BrowserRouter打包后,刷新页面出现404
    在node环境使用axios发送文件
    Nest js 使用axios模块
    Flutter For Web
    css实现开关效果
  • 原文地址:https://www.cnblogs.com/a1439775520/p/13075125.html
Copyright © 2011-2022 走看看