刪除最小數量的無效括號,使得輸入的字串有效,返回所有可能的結果。說明: 輸入可能包含了除 ( 和 ) 以外的字元。
示例 1:
輸入: "()())()"
輸出: ["()()()", "(())()"]
示例 2:
輸入: "(a)())()"
輸出: ["(a)()()", "(a())()"]
示例 3:
輸入: ")("
輸出: [""]
class solution(object):
def isvalid(self, s):
count=0
for c in s:
if c=="(":
count+=1
elif c==")":
count-=1
if count<0:
return false
return count==0
def removeinvalidparentheses(self, s):
""":type s: str
:rtype: list[str]
"""queue=
visited=set()
found=false
ans=
visited.add(s)
#print queue
while queue:
for i in range(len(queue)):
s=queue.pop(0)
if self.isvalid(s):
found=true
for j in range(len(s)):
if s[j]!="(" and s[j]!=")":
continue
tmp=s[0:j]+s[j+1:]
if tmp not in visited:
visited.add(tmp)
if found:
break
return ans
leetcode 301 刪除無效的括號
301.刪除無效的括號 刪除最小數量的無效括號,使得輸入的字串有效,返回所有可能的結果。說明 輸入可能包含了除 和 以外的字元。示例 1 輸入 輸出 示例 2 輸入 a 輸出 a a 示例 3 輸入 輸出 這道題的問題是最小刪除次數,所以這裡優先選用 bfs.使用棧來判斷是否合法 stack for...
LeetCode 301 刪除無效的括號(回溯)
刪除最小數量的無效括號,使得輸入的字串有效,返回所有可能的結果。說明 輸入可能包含了除 和 以外的字元。示例 1 輸入 輸出 示例 2 輸入 a 輸出 a a 示例 3 輸入 輸出 class solution void dfs string s,int idx,string t,int l,int...
301 刪除無效的括號(BFS)
刪除最小數量的無效括號,使得輸入的字串有效,返回所有可能的結果。說明 輸入可能包含了除 和 以外的字元。示例 1 輸入 輸出 示例 2 輸入 a 輸出 a a 示例 3 輸入 輸出 思路 廣度優先 bfs 廣度優先 bfs public listremoveinvalidparentheses st...