今日头条面试题,供大家参考

1、给定一个只包含’(’ 和’)’ 的字符串,找出最长的包含有效括号的字符串的长度

实例1:
输入:"(()"
输出:2
解释:最长有效括号字符串为 “()”

实例2
输入: “(((((()())”
输出:4
解释:最长有效括号括号字符串为“()()”

~~直接上代码了

let arr = [] // 存放 全部长度
        let count = 0; // 计数器
        let str = "((((()((()()))()()()()((((()()" // 输入字符串
        let newStr = str.replace(/\(\)/g, '*')
        console.log(newStr);
        
        for (let i = 0; i < newStr.length; i++) {
            const e = newStr[i];
            if (i < newStr.length) {
                const pre = newStr[i + 1];
                
                if (e == "*") {
                    count ++
                    if (e !== pre) {
                        arr.push(count)
                        count = 0
                    }
                }
                
            }
        }
        arr.sort(function(a, b) {return b - a});
        console.log(arr);

~~输入的结果

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值