示例
输入:(()(())
输出:6
实现
int maxLenBracket(string data) {
if (data.length() == 0)
{
return 0;
}
vector<int> dp(data.length(), 0);
int pre = 0;
int res = 0;
for (int i = 1; i < data.length(); i++)
{
if (data[i] == ')')
{
pre = i - dp[i - 1] - 1;
if (pre >= 0 && data[pre] == '(')
{
dp[i] = dp[i - 1] + 2 + (pre > 0 ? dp[pre - 1] : 0);
}
}
res = max(res, dp[i]);
}
return res;
}