Generate Parentheses
Problem Description
Given n pairs of parentheses, write a function to generate all combinations of well-formed parentheses.
Example 1:
Input: n = 3 Output: ["((()))","(()())","(())()","()(())","()()()"]
Example 2:
Input: n = 1 Output: ["()"]
Constraints:
1 <= n <= 8
Solution (JavaScript)
/**
* @param {number} n
* @return {string[]}
*/
var generateParenthesis = function(n) {
let ans = [];
function backtrack(s = '', left = 0, right = 0) {
if(s.length === 2 * n) {
ans.push(s);
return;
}
if(left < n)
backtrack(s+'(', left+1, right);
if(right < left)
backtrack(s+')', left, right+1);
}
backtrack();
return ans;
};