valid parentheses

Problem:

Given a string, valid if this is a valid parentheses.

分析

经典的栈题目。遇见左括号,推入栈;遇见右括号,进行匹配。最后返回栈的大小是否为0.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public class  {
public boolean isValid(String s) {
if (s.length() == 0) {
return true;
}
Deque<Character> deque = new ArrayDeque<>();
for (int i = 0; i < s.length(); i++) {
char cur = s.charAt(i);
if (deque.isEmpty()) {
deque.push(cur);
} else if (cur - deque.peek() == 1 || cur - deque.peek() == 2) {
deque.pop();
} else {
deque.push(cur);
}
}
return deque.isEmpty();
}
}