leetcode301 刪除無效的括號

2021-10-01 16:56:04 字數 1065 閱讀 2181

刪除最小數量的無效括號,使得輸入的字串有效,返回所有可能的結果。

說明: 輸入可能包含了除 ( 和 ) 以外的字元。

示例 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...