301 刪除無效的括號(BFS)

2021-09-19 11:33:52 字數 815 閱讀 5010

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

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

示例 1:

輸入: 「()())()」

輸出: ["()()()", 「(())()」]

示例 2:

輸入: 「(a)())()」

輸出: ["(a)()()", 「(a())()」]

示例 3:

輸入: 「)(」

輸出: [""]

思路:廣度優先 bfs

/*

* 廣度優先 bfs

* */

public listremoveinvalidparentheses(string s)

queuequeue = new linkedlist<>();

setset = new hashset<>();

queue.offer(s);

set.add(s);

boolean bl = false;

while (!queue.isempty())

if (bl)

continue;

for (int i = 0; i < curstr.length(); i++) }}

return res;

}private boolean istrue(string str)

return count == 0;

}

leetcode301 刪除無效的括號

刪除最小數量的無效括號,使得輸入的字串有效,返回所有可能的結果。說明 輸入可能包含了除 和 以外的字元。示例 1 輸入 輸出 示例 2 輸入 a 輸出 a a 示例 3 輸入 輸出 class solution object def isvalid self,s count 0 for c in s...

leetcode 301 刪除無效的括號

301.刪除無效的括號 刪除最小數量的無效括號,使得輸入的字串有效,返回所有可能的結果。說明 輸入可能包含了除 和 以外的字元。示例 1 輸入 輸出 示例 2 輸入 a 輸出 a a 示例 3 輸入 輸出 這道題的問題是最小刪除次數,所以這裡優先選用 bfs.使用棧來判斷是否合法 stack for...

301 刪除無效的括號(高頻題)

要用回溯演算法,一刷2021 3 19,沒有完全弄明白 最開始看到題目要求刪除最小括號數目,我想的是dp,但是最後它要你返回的又是字串的組合,所以就要回溯。整體思路比較簡單 統計出來多餘的左右括號 進行回溯 回溯中如果遇到多餘的括號還沒有全消除掉,那麼就選擇回溯消除 如果對應的多餘括號已經消除完了,...