1、问题
给你一个只包含 '('
和 ')'
的字符串,找出最长有效(格式正确且连续)括号子串的长度
2、算法
用dp(i)表示以字符串下标i结束的最长在效字符串长度。分两种情况 ,一种是s[i]=')',s[i-1]=')'此时,dp[i] = dp[i - 2] + 2。另外一种情况是s[i] = ')', s[i - 1] = ')',用子串sub表示以s[i-1]结束的最长有效字符串。如果子串sub的前一个字符为'('与s[i]构成有效字符串,此种情况下有dp[i] = dp[i - 1] + dp[i - dp[i - 1] - 2] + 2
综合上述情况有
代码参考: