码迷,mamicode.com
首页 > 其他好文 > 详细

22. Generate Parentheses(回溯)

时间:2018-04-22 18:14:32      阅读:162      评论:0      收藏:0      [点我收藏+]

标签:content   obj   .com   elf   example   插入   end   code   AC   

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:

[
  "((()))",
  "(()())",
  "(())()",
  "()(())",
  "()()()"
]

 技术分享图片

 

思路:向string 中插入( 和 ),每插入一个就减1。 那么如何保证这个combination 是正确的呢?

  1. 插入数量不超过n

  2. 可以插入 ) 的前提是 ( 的数量大于 )

所以就得到了递归的两个条件。

 1 class Solution(object):
 2     def generateParenthesis(self, n):
 3         """
 4         :type n: int
 5         :rtype: List[str]
 6         """
 7         res = []
 8         def help(s,left,right):
 9             if(left==0 and right==0):
10                 res.append(s[:])
11                 return 
12             if left>0:
13                 help(s+(,left-1,right)
14             if right>left:
15                 help(s+),left,right-1)
16         help(‘‘,n,n)
17         return res

 

22. Generate Parentheses(回溯)

标签:content   obj   .com   elf   example   插入   end   code   AC   

原文地址:https://www.cnblogs.com/zle1992/p/8908390.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!