Study/Algorithm
[leetcode]22. Generate Parentheses
DoRoMii
2019. 8. 9. 16:11
728x90
22. Generate Parentheses
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:
[ "((()))", "(()())", "(())()", "()(())", "()()()" ]
class Solution(object):
def makeCombi(self, prefix, n , openp, closep, result):
#print(prefix)
if openp < closep :
return
if openp+ closep == 2*n :
result.append(prefix)
if openp < n:
self.makeCombi(prefix+"(", n, openp+1, closep, result)
if closep < openp:
self.makeCombi(prefix+")",n, openp, closep+1, result)
return
def generateParenthesis(self, n):
result = []
self.makeCombi("", n , 0, 0, result)
return result