list里面存的是没有匹配的’(‘的索引, 那么每次匹配的到的时候, 就可以通过(i - 最近的没有匹配到的’(‘的index), 来计算得到当前的连续括号长度, 初始化的时候stack里面存一个-1来作为哨兵 @param s @return

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
class Solution {
/**
* list里面存的是没有匹配的'('的索引,
* 那么每次匹配的到的时候, 就可以通过(i - 最近的没有匹配到的'('的index),
* 来计算得到当前的连续括号长度, 初始化的时候stack里面存一个-1来作为哨兵
* @param s
* @return
*/
public int longestValidParentheses(String s) {
int ans = 0;
List<Integer> l = new ArrayList<>();
l.add(-1);
for (int i = 0; i < s.length(); i++) {
if (s.charAt(i) == '(') {
l.add(i);
} else if (l.size() > 1){
l.remove(l.size() - 1);
ans = Math.max(ans, i - l.get(l.size() - 1));
} else {
l.set(0, i);
}
}
return ans;
}
}

Comments
Recent Posts
Untitled
Categories
Tags
Website Info
Article Count :
2
Total Word Count :
1.6k
Unique Visitors :
Page Views :
Last Update :