最长的有效括号

给定一个只包含 '(' 和 ')' 的字符串,找出最长的包含有效括号的子串的长度。

示例 1:

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

示例 2:

输入: ")()())"
输出: 4
解释: 最长有效括号子串为 "()()"
思路:动态规划,只需要考虑两个有效的连续括号,()()这种形式和((()))这种形式,
前一种是dp[i]=dp[i-2]+2;后面dp=dp【i-1】+2;
注意()(())结合起来。这时dp[i] = dp[i - 1] + 2 + dp[i - 1 - dp[i - 1] - 1];
综合可见下面解答。

 


posted @ 2019-03-14 21:30  zzas12345  阅读(219)  评论(0编辑  收藏  举报