Java代码:
class Solution { //java
public boolean isValid(String s) {
if (s.length() % 2 == 1) return false;
Deque<Character> stack = new LinkedList<Character>();
for (char ch : s.toCharArray()) {
if (!stack.isEmpty() && (ch == ')' && stack.peek() == '(' || ch == ']' && stack.peek() == '[' || ch == '}' && stack.peek() == '{')) {
stack.pop(); //stack.peek()的前提必须确保stack不为空
} else {
stack.push(ch);
}
}
return stack.isEmpty();
}
}
Java代码:
class Solution {
public boolean isValid(String s) {
int len = s.length();
if (len % 2 == 1) return false;
Map<Character, Character> map = new HashMap<>(){{
put(')', '(');
put(']', '[');
put('}', '{');
}};
Deque<Character> stack = new LinkedList<>();
for (int i = 0; i < len; ++i) {
char ch = s.charAt(i);
if (!stack.isEmpty() && map.get(ch) == stack.peek()) {
stack.pop();
} else {
stack.push(ch);
}
}
return stack.isEmpty();
}
}