BM60 括号生成
数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。
示例:
输入:n = 3
输出:[
"((()))",
"(()())",
"(())()",
"()(())",
"()()()"
]
解题思路:
回溯法
Python代码:
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
#
# @param n int整型
# @return string字符串一维数组
#
class Solution:
def generateParenthesis(self , n: int) -> List[str]:
# write code here
def helper(l, r, ans):
if len(ans) == n * 2:
res.append(ans)
return
if l < n:
helper(l+1, r, ans+'(')
if r < l:
helper(l, r+1, ans+')')
res = []
helper(0, 0, '')
return res