难度:困难
题目描述:
思路总结:一种BFS的思想,将本题转换成了找最长有效子串。BFS的对每层的子串进行有效性判断,直到找到最长有效子串并返回。
题解一:
class Solution:
def removeInvalidParentheses(self, s: str) -> List[str]:
def isvalid(s):
count = 0
for c in s:
if c =="(":
count += 1
elif c == ")":
count -= 1
if count < 0:
return False
return count==0
level = {s}
while True:
valid = list(filter(isvalid, level))
if valid:
return valid
level = {s[:i] + s[i+1:] for s in level for i in range(len(s)) if s[i] in '()'}
题解一结果:
通过