Title
leetcode/valid-parentheses
Code
class Solution:
def isValid(self, src):
openChars = set(['(', '{', '['])
match = {']': '[', ')': '(', '}': '{'}
stack = []
for c in src:
if c in openChars:
stack.append(c)
else:
if stack and stack[-1] == match[c]:
stack.pop()
else:
return False
return len(stack) == 0
def assertEquals(expected, actual):
if expected == actual:
print(actual)
else:
print(expected, actual)
solution = Solution()
assertEquals(True, solution.isValid("()"))
assertEquals(True, solution.isValid("()[]{}"))
assertEquals(False, solution.isValid("(]"))
assertEquals(False, solution.isValid("([)]"))
assertEquals(True, solution.isValid("{()}"))
assertEquals(False, solution.isValid("]"))
assertEquals(False, solution.isValid("["))