概述
题目
给出 n 代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合。
例如,给出 n = 3,生成结果为:
[
“((()))”,
“(()())”,
“(())()”,
“()(())”,
“()()()”
]
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/generate-parentheses
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
思路
一个简单的dfs,复杂度2^n。
刚开始学习python,这道题还是让我理解很多的。
代码
class Solution:
def generateParenthesis(self, n: int) -> List[str]:
self.list=[]
self.str=""
self.dfs(n,0,0)
return self.list
def dfs(self,n:int,l:int,r:int):
if l==n and r==n:
self.list.append(self.str)
return
if l<n:
l=l+1
self.str=self.str+'('
self.dfs(n,l,r)
self.str=self.str[:-1]
l=l-1
if r<l:
r=r+1
self.str=self.str+')'
self.dfs(n,l,r)
self.str=self.str[:-1]
r=r-1
return
最后
以上就是开放飞鸟为你收集整理的力扣(LeetCode 22)括号生成 python题目思路代码的全部内容,希望文章能够帮你解决力扣(LeetCode 22)括号生成 python题目思路代码所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复