leetcode 22. 括号生成

解题思路

深搜,生成括号

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
class Solution:
def __init__(self):
self.n = None
self.ans = []

def generateParenthesis(self, n: int) -> List[str]:
self.n = n
self.ans = []
self.solve('', 0, 0)
return self.ans

def solve(self, s, left, right):
if len(s) == self.n*2:
self.ans.append(s)
return

if left < self.n:
self.solve(s+'(', left+1, right)

if right < left:
self.solve(s+')', left, right+1)