今日頭條面試題,供大家參考

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

~~輸入的結果

在這裏插入圖片描述

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