2024-03-19 02:45:09 +08:00

28 lines
411 B
Go

package main
func dfs(str string, ret *[]string, n, l, r int) {
if r >= n {
*ret = append(*ret, str)
return
}
if l < n {
dfs(str+"(", ret, n, l+1, r)
}
if r < l {
dfs(str+")", ret, n, l, r+1)
}
}
func generateParenthesis(n int) []string {
ret := []string{}
dfs("", &ret, n, 0, 0)
return ret
}
func main() {
ret := generateParenthesis(3)
for _, val := range ret {
println(val + " ")
}
}