题目
思路:
递归枚举,递归出口为左右括号都使用完,push加入答案,继续递归,使用if条件判断是否能继续递归下去,保证右括号小于左括号个数才能添加右括号。
代码
var generateParenthesis = function (n) {
let res = [];
function dfs(str, l, r) {
if (l == n && r == n) {
res.push(str)
return
}
if (l < n) dfs(str + '(', l + 1, r)
if (r < l) dfs(str + ')', l, r + 1)
}
dfs('', 0, 0)
return res
};