Skip to content

Instantly share code, notes, and snippets.

@koalahamlet
Created December 17, 2014 21:36
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save koalahamlet/6c57f13df5090da99b55 to your computer and use it in GitHub Desktop.
Save koalahamlet/6c57f13df5090da99b55 to your computer and use it in GitHub Desktop.
openers_to_closers_map = {
'(' : ')',
'{' : '}',
'[' : ']'
}
openers = openers_to_closers_map.keys()
closers = openers_to_closers_map.values()
def is_valid(code):
openers_stack = []
for char in code:
if char in openers:
openers_stack.append(char)
elif char in closers:
if not openers_stack:
return False
else:
last_unclosed_opener = openers_stack.pop()
# if this closer doesn't correspond to the most recently
# seen unclosed opener, short-circuit, returning false
if not openers_to_closers_map[last_unclosed_opener] == char:
return False
return openers_stack == []
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment