fork(1) download
  1. def f(s):
  2. stack = []
  3. invalid_count = 0
  4. pair = {')': '(', ']': '[', '}': '{'}
  5.  
  6. for ch in s:
  7. if ch in "([{":
  8. stack.append(ch)
  9. elif ch in ")]}":
  10. if stack and stack[-1] == pair[ch]:
  11. stack.pop()
  12. else:
  13. invalid_count += 1 # unmatched or mistyped closing bracket
  14.  
  15. return invalid_count + len(stack)
  16.  
  17. s = "( [ { ] )"
  18. print(f(s))
Success #stdin #stdout 0.08s 14192KB
stdin
Standard input is empty
stdout
5