最长的有效括号

蹲街弑〆低调 提交于 2020-02-04 19:31:52

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

示例 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];综合可见下面解答。

 


标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!