Skip to content

Files

Latest commit

Apr 23, 2025
b139304 · Apr 23, 2025

History

History
71 lines (50 loc) · 1.67 KB

0032-longest-valid-parentheses.adoc

File metadata and controls

71 lines (50 loc) · 1.67 KB

32. 最长有效括号

给你一个只包含 () 的字符串,找出最长有效(格式正确且连续)括号子串的长度。

示例 1:

输入:s = "(()"
输出:2
解释:最长有效括号子串是 "()"

示例 2:

输入:s = ")()())"
输出:4
解释:最长有效括号子串是 "()()"

示例 3:

输入:s = ""
输出:0

提示:

  • 0 <= s.length <= 3 * 104

  • s[i]()

思路分析

使用栈记录左右括号的下标,做匹配,同时用于标注“占位符”的状态。遍历完成后,统计占位符中的数量,找出最大长度。

官方题解中的栈,除了栈,不需要额外空间,把前置下标放入栈中,用于统计长度,解法非常巧妙。

一刷
link:{sourcedir}/_0032_LongestValidParentheses.java[role=include]

参考资料

  1. 32. 最长有效括号 - 官方题解 — 官方题解中的栈,除了栈,不需要额外空间,把前置下标放入栈中,用于统计长度,解法非常巧妙。

  2. 32. 最长有效括号 - 超简单方法,只会括号匹配就行