Generate parentheses
class Solution:
def __init__(self):
self.res = []
self.path = []
def backtrack(self, left, right, n):
if left == right == n:
self.res.append("".join(self.path))
if left < n:
self.path.append('(')
self.backtrack(left + 1, right, n)
self.path.pop()
if left > right:
self.path.append(')')
self.backtrack(left, right + 1, n)
self.path.pop()
def generateParenthesis(self, n: int) -> List[str]:
self.backtrack(0, 0, n)
return self.res
Generate Parentheses
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