數字 n 代表生成括號的對數,請你設計乙個函式,用於能夠生成所有可能的並且 有效的 括號組合。
示例:輸入:n = 3
輸出:[
「((()))」,
「(()())」,
「(())()」,
「()(())」,
「()()()」
]
class
solution
public
void
generateall
(char
current,
int pos, list
result)
}else
}public
boolean
isvalid
(char
current)
else
if(balance <0)
}return
(balance ==0)
;}}
class
solution
// 進行深搜
dfs(
"", n, n, res)
;return res;}/*
* @author
* @description
* @date
* @param current 當前字串
* @param left 剩餘的左括號數
* @param right 剩餘的右括號數
* @param res 結果集
* @return
**/private
void
dfs(string current,
int left,
int right, list
res)
if(left ==
0&& right ==0)
if(left >0)
if(right >0)
}}
class
solution
}public list
generateparenthesis
(int n)
queue
queue =
newlinkedlist
<
>()
; queue.
offer
(new
node
(n, n,"")
);while
(!queue.
isempty()
)if(curnode.left >0)
if(curnode.right >
0&& curnode.left < curnode.right)
}return res;
}}
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...