Advertisement
Guest User

20. Valid Parentheses

a guest
Dec 11th, 2019
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.48 KB | None | 0 0
  1. class Solution:
  2. def isValid(self, s: str) -> bool:
  3. newlist = []
  4. s = [str(i) for i in s]
  5. for i in range(len(s)):
  6. if "[" in s:
  7. if "]" in s:
  8. s.remove("[")
  9. s.remove("]")
  10. else:
  11. newlist.append("[")
  12. elif "(" in s:
  13. if ")" in s:
  14. s.remove("(")
  15. s.remove(")")
  16. else:
  17. newlist.append("(")
  18. elif "{" in s:
  19. if "}" in s:
  20. s.remove("{")
  21. s.remove("}")
  22. else:
  23. newlist.append("{")
  24. else:
  25. newlist.append(s[i])
  26.  
  27. return (bool(len(newlist) == 0))
  28.  
  29.  
  30. '''
  31. DNF
  32.  
  33. Solution:
  34. bracket_map = {"(": ")", "[": "]", "{": "}"}
  35. open_par = set(["(", "[", "{"])
  36. stack = []
  37. for i in s:
  38. if i in open_par:
  39. stack.append(i)
  40. elif stack and i == bracket_map[stack[-1]]:
  41. stack.pop()
  42. else:
  43. return False
  44. return stack == []
  45.  
  46. Notes:
  47. I was too complex with my attempted solution. The solution about puts everything in a map, and then checks that map against the string. Need to be able to think more simply and not code for a step-by-step basis.
  48. '''
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement