题解 | #最长的括号子串#
最长的括号子串
https://www.nowcoder.com/practice/45fd68024a4c4e97a8d6c45fc61dc6ad
#include <vector> class Solution { public: /** * * @param s string字符串 * @return int整型 */ int longestValidParentheses(string s) { int n=s.length(); vector<int> dp(n,0); int maxl=0; for(int i=0;i<n;i++){ if(s[i]=='(') dp[i]=0; else if(i>0&&s[i]==')'){ if(s[i-1]=='('){ if(i==1) { dp[i]=2; maxl=max(maxl,dp[i]); } else { dp[i]=dp[i-2]+2; maxl=max(maxl,dp[i]); } } else if(s[i-1]==')'&&s[i-dp[i-1]-1]=='('){ dp[i]=dp[i-dp[i-1]-2]+dp[i-1]+2; maxl=max(maxl,dp[i]); } } } return maxl; } };