22. 括号生成
有效括号要求:左括号和右括号数量一致,且左括号要比右括号先出现
left,right表示剩余的左括号和右括号数,如果left < right 说明此时str里右括号比左括号多,所以为无效括号组
class Solution:
def generateParenthesis(self, n: int) -> List[str]:
def fun(str, left, right):
if left == 0 and right == 0:
result.append(str)
if left < 0 or right < 0 or left > right:
return
fun(str + "(", left - 1, right)
fun(str + ")", left, right - 1)
str = ""
result = []
fun(str, n, n)
return result