Use Stack
dictionary
class Solution:
def isValid(self, s: str) -> bool:
dic = {'(':')', '{':'}', '[':']'}
stack = []
for i in s:
if i in dic.keys():
stack.append(i)
elif i in dic.values():
if not stack or dic[stack.pop()]!=i:
return False
else:
return False
return len(stack)==0
small trick
public boolean isValid(String s) {
Stack<Character> stack = new Stack<Character>();
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();
}