保存的是下标,而且只保存(的。
当遇到)时,如果为(,则计算两者之间的差值即可。
如果遇到)时,当前还是),我们也放入其中,作为一个 -1的作用
int longestValidParentheses(string s) {
int len = s.length();
stack<int> st;
st.push(-1);//放入起始点
int result = 0;
for (int i=0;i<len;i++) {
if (s[i]==')' && st.size()>1 && s[st.top()]=='('){
st.pop();//把(取出后,在用i-top()
result = max(result, i-st.top());
}
else
st.push(i);
}
return result;
}
};