括號生成(python實現

2021-10-23 15:51:23 字數 946 閱讀 2622

題目描述:

示例:

解題思路:回溯 :通過確保每一步都能夠實現有效序列,盡早實現剪枝;

我們首先找到回溯的出口條件:當左右括號都達到最大數量n時,加入結果集;

接下來以左括號開始,不斷判斷兩個條件進行遞迴呼叫,直到滿足出口條件:

(1)左括號是否達到最大數量n; 若小於,則使左括號數量加一,路徑加上'(';

(2)左括號個數是否大於右括號個數; 若大於,則使右括號數量加一,路徑加上')';

**實現:

class solution(object):

def generateparenthesis(self, n):

""":type n: int

:rtype: list[str]

"""res = # 儲存結果

self.backtrack(res, n, 0, 0, '')

return res

def backtrack(self, res, n, left, right, path):

if left==n and right==n :

return

if left < n :

self.backtrack(res, n, left+1, right,path+'(')

if left > right:

self.backtrack(res, n, left, right + 1, path + ')')

if __name__ == '__main__' :

test = solution()

res = test.generateparenthesis(3)

print(res)

leetcode 括號生成(python)

題目 給出 n 代表生成括號的對數,請你寫出乙個函式,使其能夠生成所有可能的並且有效的括號組合。例如,給出 n 3,生成結果為 思路 回溯法 class solution def generateparenthesis self,n int list str def generate item,le...

22 括號生成 python

給出 n 代表生成括號的對數,請你寫出乙個函式,使其能夠生成所有可能的並且有效的括號組合。例如,給出 n 3,生成結果為 回溯法 括號生成問題的兩個重要性質 class solution def generateparenthesis self,n int list str 儲存合法結果 res 當...

python括號生成 python生成器

python生成器是用來代替 不一定能夠使用全部元素的陣列 等到使用某一元素時,才生成該元素,用來節省空間.python生成器寫法有兩種 第一種 陣列生成式的中括號變成小括號 生成器 arr x for x in range 1,6 生成器下乙個元素用next 來取得 print next1 pri...