Skip to content

Commit 7aa3918

Browse files
committedNov 8, 2020
feat: generate-parentheses
1 parent 7360094 commit 7aa3918

File tree

2 files changed

+66
-0
lines changed

2 files changed

+66
-0
lines changed
 

Diff for: ‎recs.generate-parentheses.py

+31
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
from typing import List
2+
3+
4+
class Solution:
5+
"""
6+
22. 括号生成
7+
https://leetcode-cn.com/problems/generate-parentheses/
8+
数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。
9+
"""
10+
arr = []
11+
def generateParenthesis(self, n: int) -> List[str]:
12+
self.arr = []
13+
self._gen(0, 0, n * 2, '')
14+
return self.arr
15+
16+
17+
def _gen(self, left, right, max, s):
18+
# 终止条件
19+
if len(s) == max:
20+
self.arr.append(s)
21+
return s
22+
23+
# 递归
24+
if left < max / 2:
25+
self._gen(left + 1, right, max, s + '(')
26+
if left > right:
27+
self._gen(left, right + 1, max, s + ')')
28+
29+
30+
so = Solution()
31+
print(so.generateParenthesis(1))

Diff for: ‎tree.n-ary-tree-level-order-traversal.py

+35
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
from typing import List
2+
3+
class Node:
4+
def __init__(self, val=None, children=None):
5+
self.val = val
6+
self.children = children
7+
8+
class Solution:
9+
"""
10+
429. N叉树的层序遍历
11+
https://leetcode-cn.com/problems/n-ary-tree-level-order-traversal/
12+
给定一个 N 叉树,返回其节点值的层序遍历。 (即从左到右,逐层遍历)。
13+
"""
14+
# 迭代
15+
def levelOrder(self, root: Node) -> List[List[int]]:
16+
if not root:
17+
return []
18+
19+
next_level, res = [root], []
20+
i = 0
21+
while len(next_level) > 0:
22+
tmp_next = []
23+
if next_level:
24+
res.append([])
25+
26+
for c in next_level:
27+
res[i].append(c.val)
28+
if not c.children: continue
29+
tmp_next.extend(c.children)
30+
31+
next_level = tmp_next
32+
i += 1
33+
34+
return res
35+

0 commit comments

Comments
 (0)
Please sign in to comment.