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

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);

~~输入的结果

在这里插入图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章