这种符号相对应匹配的问题,很适合栈的特性。然后再利用hash表来优化下匹配
class Solution {
public static final Map<Character,Character> map = new HashMap<>();
static {
map.put(')','(');
map.put(']','[');
map.put('}','{');
}
public boolean isValid(String s) {
Stack<Character> stack = new Stack<>();
for(char ch:s.toCharArray()) {
if(!map.containsKey(ch)) {
stack.push(ch);
} else if(stack.isEmpty() || stack.pop() != map.get(ch)) {
return false;
}
}
return stack.isEmpty();
}
}