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;
        }
    }
    
  • 相关阅读:
    XSS 1
    KALI修改密码
    bugku web4
    16进制 32进制 base64之间的区别
    buuctf
    buuctf wireshark
    buuctf 变异凯撒
    2016集训测试赛(二十)Problem A: Y队列
    USACO 4.1.1 麦香牛块 Beef McNuggets
    2016集训测试赛(十八)Problem C: 集串雷 既分数规划学习笔记
  • 原文地址:https://www.cnblogs.com/mapoos/p/14694134.html
Copyright © 2011-2022 走看看