Iterator与LIstIterator接口在java中的区别有哪些
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小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~