import java.util.*;
public class Solution {
    public boolean isValid (String s) {
        Deque<Character> stack = new ArrayDeque<>();
        stack.push('b');
        for(int i=0;i<s.length();i++){
            char c = s.charAt(i);
            if(c=='['||c=='('||c=='{'){
                stack.push(c);
            }
            if(c==']'&&!stack.isEmpty()){
                if(stack.pop()!='[')return false;
                continue;
            }
            if(c==')'&&!stack.isEmpty()){
                if(stack.pop()!='(')return false;
                continue;
            }
            if(c=='}'&&!stack.isEmpty()){
                if(stack.pop()!='{')return false;
                continue;
            }
        }
        stack.pop();
        if(!stack.isEmpty())return false;
        else return true;
    }
}