22. 括号生成 代码实现:
func generateParenthesis(n
int) []string {
if n
== 0 {
return []string{}
}
res
:= []string{}
findGenerateParenthesis(n
, n
, "", &res
)
return res
}
func findGenerateParenthesis(left
, right
int, str
string, res
*[]string) {
if left
== 0 && right
== 0 {
*res
= append(*res
, str
)
return
}
if left
> 0 {
findGenerateParenthesis(left
-1, right
, str
+"(", res
)
}
if right
> 0 && left
< right
{
findGenerateParenthesis(left
, right
-1, str
+")", res
)
}
}
解题思路: DFS 回溯,看注释即可。
转载请注明原文地址: https://lol.8miu.com/read-18367.html