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`
Backtracking Branch Constraints
We sequentially build a string of brackets but only branch if it doesn't violate rules: open_count < n and closed_count < open_count.