1. 最长有效括号
🔗 原题链接:32. 最长有效括号
类似于有效的括号,考虑用栈来解决。
具体来讲,我们始终保持栈底元素为当前已经遍历过的元素中「最后一个没有被匹配的右括号的下标」,这样的做法主要是考虑了边界条件的处理,栈里其他元素维护左括号的下标。
从左往右遍历整个字符串,如果遇到 (
,则将其下标压入栈中;如果遇到 )
,则先弹出栈顶元素,然后再判断栈是否为空,如果栈为空,说明当前的右括号为没有被匹配的右括号,将其压入栈中,否则,更新答案。
注意,任何时刻,只有栈底元素是右括号的下标,其他元素都是左括号的下标!