""" Given one only includes '(',')','{','}','[','] String s , Determines whether the string is valid . Valid string needs to meet : Opening parentheses must be closed with closing parentheses of the same type . The left parenthesis must be closed in the correct order . """
The left parenthesis encountered later should be closed first ( Last in, first out ), for example s = "{[]}", Close first (pop)"[]", Again "{}"
class Solution:
def isValid(self, s: str) -> bool:
if len(s) % 2 == 1:
return False
pairs = {
")": "(",
"]": "[",
"}": "{",
}
stack = list()
for ch in s:
if ch in pairs:
if not stack or stack[-1] != pairs[ch]:
return False
stack.pop()# First out
else:
stack.append(ch)# Backward
return not stack
s = "{[]}"
S = Solution()
result = S.isValid(s)
print(result)