Published Dec 07, 2021
[
 
]
Given n pairs of parentheses, write a function to generate all combinations of well-formed parentheses.
Input: n = 3
Output: ["((()))","(()())","(())()","()(())","()()()"]
Input: n = 1
Output: ["()"]
1 <= n <= 8
function generateParenthesis(n: number): string[] {
const res = []
const generate = (str = '', left = 0, right = 0) => {
if(left === n && right === n) {
res.push(str)
return
}
if(left < n) {
generate(str + '(', left + 1, right)
}
if(right < left) {
generate(str + ')', left, right + 1)
}
}
generate()
return res;
}