括号生成 (Python)(括号生成 c语言)

网友投稿 320 2022-08-30


括号生成 (Python)(括号生成 c语言)

​​LeetCode链接​​

递归

首先考虑生成所有的情况,每一次都在之前的基础上加上一个左括号或者右括号,直到达到2n的长度为止

class Solution: def generateParenthesis(self, n: int): def generate(s): if len(s) == 2 * n: print(s) else: generate(s + '(') generate(s + ')') generate('')

在生成的途中加入有效性的判断:

左括号条件:left_count < n 就可以添加右括号条件:有一个左括号才能添加一个有括号,所以条件为 right_count < left_count 时,才能添加

class Solution: def generateParenthesis(self, n: int) -> List[str]: res_list = [] def generate(s, left_count, right_count): # 终止条件 if left_count == n and right_count == n: res_list.append(s) else: # 有效性判断 if left_count < n: generate(s + '(', left_count + 1, right_count) if right_count < left_count: generate(s + ')', left_count, right_count + 1) generate('', 0, 0) return res_list


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:解决Anaconda的python覆盖linux本地python版本(anaconda安装不同版本python)
下一篇:mybatis中resulthandler的用法
相关文章

 发表评论

暂时没有评论,来抢沙发吧~