1 """ 2 Given n pairs of parentheses, write a function to generate all combinations of well-formed parentheses. 3 For example, given n = 3, a solution set is: 4 [ 5 "((()))", 6 "(()())", 7 "(())()", 8 "()(())", 9 "()()()" 10 ] 11 """ 12 """ 13 每次增加括号时需要判断之前字符串中左右括号的个数 14 判断增加‘(’或‘)’依据为, 15 #若当前字符串的长度等于2n则字符串存入列表中 16 若之前字符串中左括号个数小于n,则应增加左括号, 17 若之前字符串中右括号个数小于左括号,则应增加右括号 18 """ 19 class Solution: 20 def generateParenthesis(self, n): 21 result = [] 22 # 函数嵌套 23 def trackback(S="", left=0, right=0): 24 if len(S) == 2 * n: 25 result.append(S) 26 if left < n: 27 trackback(S + '(', left + 1, right) 28 if right < left: 29 trackback(S + ')', left, right + 1) 30 trackback() 31 return result