简单的dfs
class Solution:
def generateParenthesis(self, n: int) -> List[str]:
if n == 0:
return [""]
newlist = []
string = "("
leftNum = n - 1
rightNum = n
def dfs(string, leftNum, rightNum):
if leftNum > rightNum or leftNum < 0 or rightNum < 0:
return
if leftNum == rightNum and leftNum == 0:
newlist.append(string)
dfs(string + '(', leftNum - 1, rightNum)
dfs(string + ')', leftNum, rightNum - 1)
dfs(string, leftNum, rightNum)
return newlist
处理好边界就好