1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
const generateParenthesis = (n) => { let ans = [] backtrack(ans, n) return ans }
const backtrack = (ans, n, open = 0, close = 0, s = '') => { if (s.length === n * 2) { ans.push(s) return } if (open < n) { backtrack(ans, n, open + 1, close, s + '(') } if (close < open) { backtrack(ans, n, open, close + 1, s + ')') } }
|