Menu
CoddyTech

Longest Valid Parentheses

给你一个只由 ( 和 ) 组成的字符串 s。找出其中最长的格式正确的子字符串(连续的一段字符):其中每个 ( 都由后面的 ) 闭合,并且括号正确嵌套,如 (()())。返回该子字符串的长度;如果连 () 都没有出现,则返回 0。

函数

longestValidParentheses(s: string) → integer
sstring
由 ( 和 ) 字符组成的字符串
返回值integer
最长格式正确子串的长度;如果不存在,则为 0

约束条件

  • 1 ≤ s.length ≤ 6 × 104
  • 字符串 s 中的每个字符都是 ( 或 )。

示例

输入
s = "()(())"
输出
6
解释
整个字符串的格式都正确:() 后面跟着 (())。两个格式正确的部分并排放在一起,就组成一个完整的字符串,所以答案是全部 6 个字符。
challenge icon

进阶

你还可以报告最长的格式正确子字符串从哪里开始吗?如果有多个子字符串长度相同,请选择最靠左的那个。

重置代码
def longestValidParentheses(s):
    # 在这里编写代码

测试 #1

测试 #2

测试 #3

参数

s = "()(())"

预期输出

6