题目描述
模拟栈,注意栈空的情况
Java代码
public boolean isValid(String s) {
Map<Character,Character> map = new HashMap<>(){{
put('(',')');
put('{','}');
put('[',']');
}};
Stack<Character> stack = new Stack<>();
for(int i=0;i<s.length();i++){
if(isLeft(s.charAt(i))){
stack.push(s.charAt(i));
}else{
if(stack.empty()){
return false;
}else{
if(map.get(stack.peek()) != s.charAt(i)){
return false;
}else{
stack.pop();
}
}
}
}
if(stack.empty()){
return true;
}
return false;
}
private boolean isLeft(char c){
if(c=='(' || c=='{' || c=='['){
return true;
}
return false;
}