数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。
示例 1:
输入:n = 3输出:["((()))","(()())","(())()","()(())","()()()"]
示例 2:
输入:n = 1输出:["()"]
提示:
-
解法一:回溯
function generateParenthesis(n: number): string[] {let res: Array<string> = []if (n === 0) {return res}const recursion = (cur: string, left: number, right: number) => {if (left === 0 && right === 0) {res.push(cur)return}if (left > right) {return}if (left > 0) {recursion(cur + "(", left - 1, right)}if (right > 0) {recursion(cur + ")", left, right - 1)}}recursion("", n, n)return res};
