class Solution:
def generateParenthesis(self, n: int) -> List[str]:
ret = []
def func(stack:str, left:int, right:int):
if right == n:
ret.append(stack)
return
if left < n:
func(stack=stack+'(', left=left+1,right=right)
if left > right:
func(stack=stack+')', left=left,right=right+1)
func(stack='',left=0,right=0)
return ret
很简单的题,只需要塞左右括号,然后讨论什么时候可以塞左or右,什么时候停止。