(解答明天写,今天实在是太多的事情了)
int longestValidParentheses(string s)
{
stack<int>temp;
int res=0;
int left=0;
int i=0;
for(i=0;i!=s.size();++i)
{
if(s[i]=='(')
temp.push(i);
else
{
if(temp.empty())
left=i+1;
else
{
temp.pop();
if(temp.empty())//若果s栈已经空了,说明从最开始标记的那个left到现在都是有效的?()()
{
res=max(res,i-left+1);
}
else//否则,就算当前的就好(())
res=max(res,i-temp.top());
}
}
}
return res;
}