class Solution {
public static int longestValidParentheses(String s) {
int res=0,start=0;
Stack<Integer> sk=new Stack<>();
for (int i=0;i<s.length();i++)
{
if(s.charAt(i)=='(')
{
sk.push(i);
}
else
{
if(sk.isEmpty())
{
start=i+1;
}
else {
sk.pop();
res=sk.isEmpty()? Math.max(res,i-start+1):Math.max(res,i-sk.peek());
}
}
}
return res;
}
}