32. 最长有效括号
难度困难1288
给你一个只包含 '('
和 ')'
的字符串,找出最长有效(格式正确且连续)括号子串的长度。
示例 1:
1 | 输入:s = "(()" |
示例 2:
1 | 输入:s = ")()())" |
示例 3:
1 | 输入:s = "" |
提示:
0 <= s.length <= 3 * 104
s[i]
为'('
或')'
栈
遇到左括号入栈,遇到右括号出栈,
- 如果出栈后栈为空了就将当前的index入栈
- 如果出栈后栈不为空,计算当前的index到栈顶的index之间的差值即为当前的有效括号的长度
1 | class Solution { |
动态规划
1 | public class Solution { |
不需要额外空间
1 | public class Solution { |