给你一个只包含 '(' 和 ')' 的字符串,找出最长有效(格式正确且连续)括号子串的长度。
java
class Solution {
public int longestValidParentheses(String s) {
Stack<Integer> st = new Stack<Integer>();
int ans = 0;
for(int i = 0 ,start = 0;i < s.length();i ++)
{
if( s.charAt(i) == '(') st.add(i);
else
{
if(!st.isEmpty())
{
st.pop();
if(st.isEmpty()) ans = Math.max(ans,i - start + 1);
else ans = Math.max(ans,i - st.peek());
}
else start = i + 1;
}
}
return ans;
}
}