32.最长有效括号

32.最长有效括号_第1张图片
最长有效(格式正确且连续)括号子串的长度
动态规划:
在这里插入图片描述
32.最长有效括号_第2张图片
32.最长有效括号_第3张图片
32.最长有效括号_第4张图片
32.最长有效括号_第5张图片
32.最长有效括号_第6张图片

class Solution{
public:
	int longeatValidParentheses(string s){
		int n=s.size();
		vector<int> dp(n,0);

		int maxVal=0;
		for(int i=1;i<n;i++){
			if(s[i]==')'){
				if(s[i-1]=='('){
					dp[i]=2;
					if(i-2>=0){
						dp[i]=dp[i-2]+dp[i];
					}
				}else if(dp[i-1]>0){
					if((i-dp[i-1]-1>=0&&s[i-dp[i-1]-1]=='(')){
						dp[i]=dp[i-1]+2;
						if((i-dp[i-1]-2)>=0){
							dp[i]+=dp[i-dp[i-1]-2];
						}
					}
				}
			}
			maxVal=max(maxVal,dp[i]);
		}
		return maxVal;
	}
};

你可能感兴趣的:(数据结构,动态规划)