Advertisement
Guest User

Untitled

a guest
Oct 22nd, 2019
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.57 KB | None | 0 0
  1. class Solution:
  2. def isValid(self, str):
  3. stack = []
  4. for c in str:
  5. if c=='(':
  6. stack.append('(')
  7. elif c==')':
  8. if stack:
  9. stack.pop()
  10. else:
  11. return False
  12. return not stack
  13. def removeInvalidParentheses(self, s: str) -> List[str]:
  14. if self.isValid(s):
  15. return [s]
  16. #Auto remove duplicate
  17. result = set()
  18. #Remove one cases
  19. for i in range(len(s)):
  20. removeds = s[:i]
  21. if len(s)>1:
  22. removeds += s[i+1:]
  23. if self.isValid(removeds):
  24. result.add(removeds)
  25. if result:
  26. return list(result)
  27. #Remove two cases
  28. for j in range(len(s)):
  29. removeds = s[:j]
  30. if len(s)>1:
  31. removeds += s[j+1:]
  32. for i in range(len(removeds)):
  33. tmp = removeds[:i]
  34. if len(removeds)>1:
  35. tmp += removeds[i+1:]
  36. if self.isValid(tmp):
  37. result.add(tmp)
  38. if result:
  39. return list(result)
  40. #Remove three cases
  41. for k in range(len(s)):
  42. removeds1 = s[:k]
  43. if len(s)>1:
  44. removeds1 += s[k+1:]
  45. for j in range(len(removeds1)):
  46. removeds2 = removeds1[:j]
  47. if len(removeds1)>1:
  48. removeds2 += removeds1[j+1:]
  49. for i in range(len(removeds2)):
  50. tmp = removeds2[:i]
  51. if len(removeds2)>1:
  52. tmp += removeds2[i+1:]
  53. if self.isValid(tmp):
  54. result.add(tmp)
  55. if result:
  56. return list(result)
  57. #Remove four cases
  58. for l in range(len(s)):
  59. removeds1 = s[:l]
  60. if len(s)>1:
  61. removeds1 += s[l+1:]
  62. for k in range(len(removeds1)):
  63. removeds2 = removeds1[:k]
  64. if len(removeds1)>1:
  65. removeds2 += removeds1[k+1:]
  66. for j in range(len(removeds2)):
  67. removeds3 = removeds2[:j]
  68. if len(removeds2)>1:
  69. removeds3 += removeds2[j+1:]
  70. for i in range(len(removeds3)):
  71. tmp = removeds3[:i]
  72. if len(removeds3)>1:
  73. tmp += removeds3[i+1:]
  74. if self.isValid(tmp):
  75. result.add(tmp)
  76. return list(result)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement