括号生成
数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。
输入:n = 3
输出:[
“((()))”,
“(()())”,
“(())()”,
“()(())”,
“()()()”
]
递归
/**
* @param {number} n
* @return {string[]}
*/
var generateParenthesis = function(n) {
const res = []
if (!n) return res;
const generate = (left = 0, right = 0, n, s = '') => {
if (left === n && right === n) {
res.push(s)
return
}
left < n && generate(left+1, right, n, s + '(')
left > right && generate(left, right+1, n, s + ')')
}
generate(0, 0, n, '')
return res
};
版权声明:本文为baidu_33591715原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。