资讯专栏INFORMATION COLUMN

一个有关字符串子串的有趣问题

YanceyOfficial / 3251人阅读

摘要:问题描述输入一个字符串。从输入的字符串中截取一段连续的片段作为子串,且子串满足从左往右数,的个数总是不比少。输出其满足条件的最长的子串的长度。下面是的实现解决思路穷举从第个字符开始的所有满足条件的最长字符串,取其中最长的。

问题描述:

输入一个字符串。

输入的字符串仅由"0"和"1"组成,比如"10100011101"这样的。

从输入的字符串中截取一段连续的片段作为子串,且子串满足从左往右数,"0"的个数总是不比"1"少。

输出其满足条件的最长的子串的长度。

下面是JavaScript的实现:

function subString(str){
    var arr = str.split("");
    var result = 0;
    (function loop(i){
        if (result + i <= arr.length && arr[i] !== "0"){
            loop(i+1);
        } else if ( result + i <= arr.length ) {
            var l = 1;
            var subLength = 1;            
            (function subLoop(k){
                if( l > 0 || arr[k] === "0" && k < arr.length ){
                    subLength++;
                    l += arr[k]==="0" ? 1 : -1;
                    result = result>subLength ? result : subLength;
                    subLoop(k+1);
                } else if ( k < arr.length ) {
                    loop(i+1)
                }
            }(i+1))
        }
    }(0))

    return result;
}

解决思路:穷举从第i个字符开始的所有满足条件的最长字符串,取其中最长的。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/90863.html

相关文章

  • [Leetcode] Distinct Subsequences 不同顺序字串

    摘要:计算元素值时,当末尾字母一样,实际上是左方数字加左上方数字,当不一样时,就是左方的数字。示意图代码如果这个字符串有个怎么办用暴力法,对每一位开始向后检查是否是。 Distinct Subsequences Given a string S and a string T, count the number of distinct subsequences of T in S. A su...

    SnaiLiu 评论0 收藏0
  • 数据结构-BF算法及KMP算法

    摘要:算法代码复杂度最坏情况的时间复杂度。算法简单记忆分为两步模式串扫描,生成数组,。算法对算法的回溯问题进行了改进,在整个匹配过程中对主串仅需从头至尾扫描一遍。在定义函数时在参数前加上改为引传递。一般情况为值传递,对象除外。 BF算法 代码 复杂度 最坏情况的时间复杂度O(m*n)。m为模式串长度。n为目标串长度。 KMP算法 代码 时间复杂度 时间复杂度为O(m+n)。m为模式串长度...

    jollywing 评论0 收藏0
  • Python--Redis实战:第三章:Redis命令:第一节:字符

    摘要:对字符串执行自增和自减操作的实例导入包包与本地进行链接,地址为,端口号为尝试获取一个不存在的键将得到一个值。上一篇文章实战第二章使用构建应用第五节网页分析下一篇文章实战第三章命令第二节列表 上一篇文章: Python--Redis实战:第二章:使用Redis构建Web应用:第五节:网页分析下一篇文章:Python--Redis实战:第三章:Redis命令:第二节:列表 在Redis里...

    HelKyle 评论0 收藏0

发表评论

0条评论

YanceyOfficial

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<