Generate Parentheses
Question
Given n pairs of parentheses, write a function to generate all combinations of well-formed parentheses.
For example, given n = 3, a solution set is:
[
"((()))",
"(()())",
"(())()",
"()(())",
"()()()"
]
Tags
- Backtracking
- String
Thought
Use the backtracking here.
Code
class Solution(object):
def generateParenthesis(self, n):
"""
:type n: int
:rtype: List[str]
"""
result = []
def helper(current, left, right):
if right == n:
result.append(current)
return
if left < n:
helper(current + '(', left + 1, right)
if right < left:
helper(current + ')', left, right + 1)
helper('', 0, 0)
return result