JAVA
class Solution {
public boolean isValid(String s) {
Stack<Character> stack = new Stack<Character>();
char [] chars = s.toCharArray();
for (char c:chars){
if (c=='('||c=='['||c=='{'){
stack.add(c);
}else {
if (stack.isEmpty()) return false;
if (c==')'&&stack.pop()!='(') return false;
if (c==']'&&stack.pop()!='[') return false;
if (c=='}'&&stack.pop()!='{') return false;
}
}
return stack.isEmpty();
}
}
python
class Solution:
def isValid(self, s: str) -> bool:
if len(s) == 1:
return False
if len(s) == 0:
return True
stack = [None]
listDict = {')': "(", ']': "[", '}': "{"}
for i in s:
if i in listDict and listDict[i] ==stack[-1]:
stack.pop()
else:stack.append(i)
if len(stack) == 1:
return True
else:
return False