leecode 22 括號生成

2022-10-09 07:33:13 字數 542 閱讀 1066

數字 n 代表生成括號的對數,請你設計乙個函式,用於能夠生成所有可能的並且 有效的 括號組合。

示例 1:

輸入:n = 3

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

示例 2:

輸入:n = 1

輸出:["()"]

public listgenerateparenthesis(int n) 

public void generate(int left ,int right ,list list,string st, int n)

if(left==n&&right==n)

if(left>=right)

}

傳入left,right,list,st,n

當任意一種括號數大於n時返回這樣避免」((((「,"))))"等情況產生,當兩者個數等於n時表明此時的st為可能解。

left>=right時,進行遞迴,這樣避免」(()))(「等情況產生

22 括號生成

參考回溯法 1.class solution def init self self.ans list defgenerateparenthesis self,n int self.parenthesisiter n,0,return self.ans list defparenthesisiter ...

22 括號生成

給出 n 代表生成括號的對數,請你寫出乙個函式,使其能夠生成所有可能的並且有效的括號組合。例如,給出 n 3,生成結果為 在leetcode中有關括號的題共有三道,除了這一道的另外兩道是valid parentheses 驗證括號和longest valid parentheses 最長有效括號,這...

22 括號生成

插空法對於乙個 可以把另乙個 插到它的任意乙個空位,形成新的組合。此處有3個空位,但插在頭部和尾部是重複的,所以要注意去重,可以用set class solution object def generateparenthesis self,n res set for i in range n 1 t...