Leetcode練習(Python):回溯算法類:第22題:括號生成:數字 n 代表生成括號的對數,請你設計一個函數,用於能夠生成所有可能的並且 有效的 括號組合。


題目:

括號生成:數字 n 代表生成括號的對數,請你設計一個函數,用於能夠生成所有可能的並且 有效的 括號組合。

思路:

使用回溯算法,使用回溯算法的模板可以很快的求解。

程序:

class Solution:
    def generateParenthesis(self, n: int) -> List[str]:
        if n <= 0:
            return []
        if n == 1:
            return ["()"]
        result = []
        def backtrack(Curr, left, right):
            if right == n:   # 滿足結束條件
                result.append(''.join(Curr))
                return
            if left < n:
                Curr.append("(")  # 做出選擇
                backtrack(Curr, left + 1, right)  # 路徑,選擇列表
                Curr.pop() # 撤銷選擇
            if right < left:
                Curr.append(")")
                backtrack(Curr, left, right + 1)
                Curr.pop()
        backtrack([], 0, 0)
        return result


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM