简介
最长有效括号,
使用动态规划, 然后 分成两种情况进行讨论.
code
class Solution {
public:
int longestValidParentheses(string s) {
int n = s.size();
int maxans = 0;
vector<int> dp(n, 0);
for(int i=1; i<n; i++){
if(s[i] == ')') {
if(s[i-1] == '(') {
dp[i] = (i >= 2 ? dp[i-2] : 0) + 2;
} else if ( i - dp[i-1] > 0 && s[i - dp[i-1] - 1] == '(') {
dp[i] = dp[i-1] + ((i - dp[i-1]) >= 2? dp[i - dp[i-1] - 2]:0) + 2;
}
maxans = max(maxans, dp[i]);
}
}
return maxans;
}
};
---------------------------我的天空里没有太阳,总是黑夜,但并不暗,因为有东西代替了太阳。虽然没有太阳那么明亮,但对我来说已经足够。凭借着这份光,我便能把黑夜当成白天。我从来就没有太阳,所以不怕失去。
--------《白夜行》