给定一个只包含 ‘(‘
和 ‘)‘
的字符串,找出最长的包含有效括号的子串的长度。
示例 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];
综合可见下面解答。
原文:https://www.cnblogs.com/zzas0/p/10533645.html