2477 最长有效括号串
小明的老师给小明布置了一道作业,作业内容如下:
给定一个只包含 '(' 和 ')' 的字符串,找出最长的包含有效括号的子串的长度。
由于小明太忙了,所以想请你帮忙完成,聪明的你可以帮小明解决这个问题吗?
有效括号串定义为左右可以匹配,例如'('和')'可以匹配。
匹配规则如下:
(1)若a是有效括号串,则(a)也是;
(2)若a、b是有效括号串,则ab也是。
输入
输入一个只包含'('与')'的字符串,字符串长度n满足0<n≤50000
输出
输出一个数表示子串长度
数据范围
对于100%的数据,0<n≤50000
输入样例
)()())
输出样例
4
解析:
这道题目可以用栈来解决。
我们依次枚举每个括号,并用 start 记录上一段有效序列的开头位置:
-
如果是左括号,就将其放入栈中。
-
如果是右括号,判断一下栈是否为