// 給你一個只包含 '(' 和 ')' 的字符串,找出最長有效(格式正確且連續(xù))括號子串的長度。
const s = '(())))()'
function longestValidParentheses(s) {
let maxLen = 0
let stack = []
// 初始化一個參照物
stack.push(-1)
for (let i = 0; i < s.length; i++) {
if (s[i] == '(') {
// ( 入棧 )出棧
stack.push(i)
} else {
// )的情況 出棧
stack.pop()
if (stack.length) {
// 每次出棧 計算下當前有效連續(xù)長度
// 如何計算連續(xù)長度 當前位置 - 棧頂下標
maxLen = Math.max(maxLen, i - stack[stack.length - 1])
console.log(maxLen, 'maxLen', i, i - stack[stack.length - 1]);
} else {
//棧為空時 放入右括號參照物 表示從這個下標開始 需要重新計算長度
stack.push(i)
}
}
console.log(i, stack);
}
return maxLen
}
longestValidParentheses(s)
找出最長有效括號
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。