

python
class Solution:
def longestValidParentheses(self, s: str) -> int:
stack = [-1] # 存储索引,初始值 -1 代表"未匹配起点"
max_length = 0
for i, char in enumerate(s):
if char == '(':
stack.append(i)
else: # char == ')'
stack.pop()
if stack:
max_length = max(max_length, i - stack[-1])
else:
stack.append(i) # 记录新的无效起点
return max_length