Java:
class Solution { public boolean isValid(String s) { Stack<Character> stack = new Stack<>(); for (char c : s.toCharArray()){ if(c=='(') stack.push(')'); else if(c=='[') stack.push(']'); else if(c=='{') stack.push('}'); else if(stack.isEmpty()||stack.pop()!=c) return false; } return stack.isEmpty(); } }
Python:
class Solution: def isValid(self, s): """ :type s: str :rtype: bool """ stack = [] dic = {')':'(', ']':'[', '}':'{'} for char in s: if char in dic.values(): stack.append(char) elif char in dic.keys(): if stack == [] or dic[char] != stack.pop(): return False return stack == []