For example, given n = 3, a solution set is:
"((()))", "(()())", "(())()", "()(())", "()()()"
Solution:
class Solution:
# @param an integer
# @return a list of string
def generateParenthesis(self, n):
solution = []
self.generateParenthesisRec(n,0,0,[],solution)
return solution
def generateParenthesisRec(self, n, openParentheses, closeParentheses,tempSolution,solution):
if closeParentheses == n:
solution.append(''.join(tempSolution))
return
if openParentheses<n:
tempSolution.append('(')
self.generateParenthesisRec(n,openParentheses+1,closeParentheses,tempSolution,solution)
tempSolution.pop()
if closeParentheses<openParentheses:
tempSolution.append(')')
self.generateParenthesisRec(n,openParentheses,closeParentheses+1,tempSolution,solution)
tempSolution.pop()
No comments :
Post a Comment