题目
- 括号生成
给出 n 代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合。
例如,给出 n = 3,生成结果为:
[
“((()))”,
“(()())”,
“(())()”,
“()(())”,
“()()()”
]
解法
func generateParenthesis(n int) []string {nums := make([]string, 0)generate("",&nums, n, n)return nums
}func generate(s string, nums *[]string, left int,right int ) {if left == 0 && right == 0 {*nums = append(*nums, s)return}if left > 0 {generate(s + "(", nums, left - 1, right)}if right > left {generate(s + ")", nums, left, right - 1)}
}