import java.util.*;
public class Solution {
/**
*
* @param s string字符串
* @return bool布尔型
*/
public boolean isValid (String s) {
// write code here
int n = s.length();
if (n % 2 == 1) {
return false;
}
Deque<Character> stack = new LinkedList<>();
HashMap<Character,Character> map = new HashMap<Character,Character>(){{
put(']','[');
put(')','(');
put('}','{');
}};
for(int i = 0 ; i < s.length(); i++){
if(map.containsKey(s.charAt(i))){
if(!stack.isEmpty() && stack.peek() == map.get(s.charAt(i))){
stack.pop();
}else{
return false;
}
}else{
stack.push(s.charAt(i));
}
}
return stack.isEmpty();
}
}