LeetCode | 括号生成
LeetCode 生成 括号
2023-06-13 09:15:37 时间
题目 22. 括号生成 - 力扣(LeetCode) 数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。 示例 1:
输入:n = 3输出:["((()))","(()())","(())()","()(())","()()()"]
示例 2:
输入:n = 1输出:["()"]
提示: 1 <= n <= 8 题解 Python 3
class Solution: # 方法1: 递归法 # 时间复杂度: O(2^(2n) * n) # 空间复杂度: O(n) def generateParenthesis(self, n: int) -> List[str]: def generate(A): if len(A) == 2*n: if valid(A): ans.append("".join(A)) else: A.append('(') generate(A) A.pop() A.append(')') generate(A) A.pop() def valid(A): bal = 0 for c in A: if c == '(': bal += 1 else: bal -= 1 if bal < 0: return False return bal == 0 ans = [] generate([]) return ans
相关文章
- leetcode 1019. 链表中的下一个更大节点 js实现
- 【Leetcode 346/700】79. 单词搜索-回溯深度搜索JavaScript版
- leetcode-103二叉树的锯齿形层序遍历「建议收藏」
- leetcode 5. 最长回文子串
- LeetCode 242. 有效的字母异位词
- leetcode-142. 环形链表 II
- Leetcode模块训练2
- JavaScript刷LeetCode-字符串类解题技巧_2023-02-27
- 19道leetcode二分查找算法
- 用javascript分类刷leetcode并查集(图文视频讲解)
- 前端工程师leetcode算法面试必备---二分搜索算法(中)
- JavaScript刷LeetCode拿offer-js版字典