数字 n
代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。
/**
* @param {number} n
* @return {string[]}
*/
var generateParenthesis = function(n) {
var ans = [];
var backtrack = function(S, left, right){
if(S.length == 2*n){
ans.push(S.join(""));
return;
}
if(left<n){
S.push("(");
backtrack(S,left+1,right);
S.pop();
}
if(right<left){
S.push(")");
backtrack(S,left,right+1);
S.pop();
}
}
backtrack([], 0, 0);
return ans
};