zoukankan      html  css  js  c++  java
  • LeetCode 696 计数二进制子串

    Leetcode 696 计数二进制子串

    给定一个只包含0,1的字符串,假设一个连续子串中若包含相同数量的0,1且不交错分布则为一个满足要求的子串,求给定字符串中有多少个满足要求的子串。
    方法: 交替对连续的0,1子串进行计数。当已经计数有last个连续的0时,若接下来又计数有count个连续的1,则last个0、count个1组成的子串中满足要求的子串一共有min(last, count)个

    执行用时:10 ms, 在所有 Java 提交中击败了87.83%的用户
    内存消耗:40.2 MB, 在所有 Java 提交中击败了61.54%的用户

    class Solution { 
        public int countBinarySubstrings(String s) {
            int ptr = 0, n = s.length(), last = 0, ans = 0;
            while (ptr < n) {
                //c记录每一次记录的子串元素
                char c = s.charAt(ptr);
                //记录当前子串中相同字符c的数量
                int count = 0;
                while (ptr < n && s.charAt(ptr) == c) {
                    ++ptr;
                    ++count;
                }
                //结果值更新
                ans += Math.min(count, last);
                last = count;
            }
            return ans;
        }
    }
    
  • 相关阅读:
    看别人的代码学习的css
    Font Awesome
    响应式网站设计
    css兼容性的问题
    英语
    我的bootstrap使用的历程
    jquery的常用的容易忘记的东西
    jquery基本方法
    js与jquery的区别
    134123
  • 原文地址:https://www.cnblogs.com/CodeSPA/p/13471889.html
Copyright © 2011-2022 走看看