A string of brackets is well-formed when every opening bracket has a closing bracket after it, and the brackets close in the right order. For example, "(())" and "()()" are well-formed, but ")(" is not.
Given n pairs of round brackets, return all the well-formed strings that can be made. Return the answer in any order.
Examples
Example 1:
Input: n = 2
Output: ["(())","()()"]
Explanation: Two strings can be made: one bracket inside another, or two brackets side by side.
Example 2:
Input: n = 4
Output: ["(((())))","((()()))","((())())","((()))()","(()(()))","(()()())","(()())()","(())(())","(())()()","()((()))","()(()())","()(())()","()()(())","()()()()"]
Explanation: There are 14 well-formed strings with 4 pairs.