数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。
示例 1:
输入:n = 3
输出:["((()))","(()())","(())()","()(())","()()()"]
示例 2:
输入:n = 1
输出:["()"]
class Solution(object): def generateParenthesis(self, n): res = [] def backtrack(in_idx, out_idx, tmp_res): if out_idx > n or in_idx > n: return if len(tmp_res) == 2*n: res.append(tmp_res) return if n-in_idx: backtrack(in_idx+1, out_idx, tmp_res+'(') if in_idx-out_idx: backtrack(in_idx, out_idx+1, tmp_res+')') backtrack(0,0,'') return res