LeetCode 22 括号生成

题目:

数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。

解题:

暴力破解,左括号等于右括号的时候只能增加左括号,大于的时候左右都可以增加

代码:

func generateParenthesis(n int) []string {
    var s []string
    return backtrack(s, "", n, n)
}


func backtrack(s []string, str string, open int, close int) []string {
    if open == 0 && close == 0 {
        return append(s, str)
    }
    if open == close {
        return backtrack(s, str+"(", open-1, close)
    }
    if open < close {
        if open > 0 {
            s = backtrack(s, str+"(", open-1, close)
        }
        s = backtrack(s, str+")", open, close-1)
    }
    return s
}

官方没有golang的解答

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注