給出 n 表明生成括號的對數,請你寫出一個函數,使其可以生成全部可能的而且有效的括號組合。python
例如,給出 n = 3,生成結果爲:app
[ "((()))", "(()())", "(())()", "()(())", "()()()" ]
回溯法函數
python能夠函數裏定義函數spa
class Solution(object): def generateParenthesis(self, N): ans = [] def backtrack(S = '', left = 0, right = 0): if len(S) == 2 * N: ans.append(S) return if left < N: backtrack(S+'(', left+1, right) if right < left: backtrack(S+')', left, right+1) backtrack() return ans