刪除最小數量的無效括號,使得輸入的字串有效,返回所有可能的結果。
說明: 輸入可能包含了除 ( 和 ) 以外的字元。
示例 1:
輸入: 「()())()」
輸出: ["()()()", 「(())()」]
示例 2:
輸入: 「(a)())()」
輸出: ["(a)()()", 「(a())()」]
示例 3:
輸入: 「)(」
輸出: [""]
public list
removeinvalidparentheses
(string s)
//如果遇到右擴號
if(s.
charat
(i)==
')')
else}}
hashset
set =
newhashset
<
>()
;dfs
(s,0
,l,r,set)
; list
res =
newarraylist
<
>
(set)
;return res;
}public
void
dfs(string s,
int index,
int l,
int r,hashset
set)
}for
(int i=index;ilength()
;i++
)else
if(r>
0&& s.
charat
(i)==
')')}}
public
boolean
isvalid
(string s)
if(s.
charat
(i)==
')')
if(count<0)
}return count==0;
}
刪除無效的括號
回溯,深度搜尋 給定字串 首先求出不匹配的左括號數和右括號數。在深度搜尋過程中去除不匹配的符號,舉例 當左括號數等於右括號數時,判斷是否匹配 class solution object def removeinvalidparentheses self,s type s str rtype list...
LeetCode BFS 刪除無效的括號
刪除最小數量的無效括號,使得輸入的字串有效,返回所有可能的結果。說明 輸入可能包含了除 和 以外的字元。示例 輸入 輸出 輸入 a 輸出 a a 輸入 輸出 class solution if isvalid s return queueq unordered setlookup 記錄字串是否被訪問...
301 刪除無效的括號(BFS)
刪除最小數量的無效括號,使得輸入的字串有效,返回所有可能的結果。說明 輸入可能包含了除 和 以外的字元。示例 1 輸入 輸出 示例 2 輸入 a 輸出 a a 示例 3 輸入 輸出 思路 廣度優先 bfs 廣度優先 bfs public listremoveinvalidparentheses st...