def parenthesis(string): openchr = { '(' : 0, '{' : 1, '[' : 2 } closechr = { ')' : 0, '}' : 1, ']' : 2 } visited = [] for char in string: if char in openchr: visited.append(char) else: if len(visited) == 0: return False popped = visited.pop(-1) if (openchr[popped] != closechr[char]): return False if len(visited) == 0: return True return False