思路
其中有效括号对通过栈完成了验证.
代码
class Solution {
public int longestValidParentheses(String s) {
Stack<Integer> stk = new Stack();
char[] sc = s.toCharArray();
int res = 0;
for(int i = 0, start = -1; i < sc.length; i++){
if(sc[i] == '('){
//将左括号在字符串中的索引存储下来
stk.push(i);
}else{
//遇到的是右括号
if(stk.size() > 0){
//如果栈中还有左括号, 配对成功, 从栈中弹出
stk.pop();
if(stk.size() > 0){
//每次配对成功计算一下已经配对的有效括号的长度, 长度为 当前右括号索引 - 栈顶左括号的索引
res = Math.max(res, i - stk.peek());
}else{
// 第次配对成功计算一下已经配对的有效括号的长, 但栈已空, 说明整个一段都是有效括号序列, 长度为 当前右括号索引 - start.
res = Math.max(res, i - start);
}
}else{
//遇到右括号, 且栈是空的, 说明这是一个分界点
start = i;
}
}
}
return res;
}
}
我也喜欢你的字
谢谢小可爱~
goodnotes吗,为啥你们在屏幕写字也这么好看
是的goodnotes. 哈哈, 我买了笔尖套, 所以写字流畅一些和平时写字没有区别了~