zoukankan      html  css  js  c++  java
  • 0696. Count Binary Substrings (E)

    Count Binary Substrings (E)

    题目

    Give a string s, count the number of non-empty (contiguous) substrings that have the same number of 0's and 1's, and all the 0's and all the 1's in these substrings are grouped consecutively.

    Substrings that occur multiple times are counted the number of times they occur.

    Example 1:

    Input: "00110011"
    Output: 6
    Explanation: There are 6 substrings that have equal number of consecutive 1's and 0's: "0011", "01", "1100", "10", "0011", and "01".
    
    Notice that some of these substrings repeat and are counted the number of times they occur.
    
    Also, "00110011" is not a valid substring because all the 0's (and 1's) are not grouped together.
    

    Example 2:

    Input: "10101"
    Output: 4
    Explanation: There are 4 substrings: "10", "01", "10", "01" that have equal number of consecutive 1's and 0's.
    

    Note:

    s.length will be between 1 and 50,000.

    s will only consist of "0" or "1" characters.


    题意

    给定一个只包含1和0的字符串,取子串使满足:子串中字符1排在一起,字符0排在一起,且1的个数和0的个数相等,求这样的子串的个数。

    思路

    从左到右遍历字符串,将所有连续的字符归纳为一个组,相邻组A和B必定是不同字符的集合,那么A和B能组成的有效的子串的个数为min(A.len, B.len)。


    代码实现

    Java

    class Solution {
        public int countBinarySubstrings(String s) {
            int count = 0;
            int pre = 0, cur = 1;
            
            for (int i = 1; i < s.length(); i++) {
                if (s.charAt(i) == s.charAt(i - 1)) {
                    cur++;
                } else {
                    count += Math.min(pre, cur);
                    pre = cur;
                    cur = 1;
                }
            }
            count += Math.min(pre, cur);
            
            return count;
        }
    }
    
  • 相关阅读:
    InterView
    单例设计模式(附AS3)
    网络游戏的分类
    flex的动态链接库和静态链接库
    flash 中位图九宫格的用法
    删除Flex Builder中没用的工作空间
    一个3D游戏DEMO, 同步教程更新
    LVS NET部署
    zabbix安装
    MySQL+keepalived高可用配置
  • 原文地址:https://www.cnblogs.com/mapoos/p/14694134.html
Copyright © 2011-2022 走看看