题解 | #括号生成#

括号生成

https://www.nowcoder.com/practice/c9addb265cdf4cdd92c092c655d164ca

package main

func generateParenthesis( n int ) []string {
    // write code here
    ans, oneShot := []string{}, []byte{}
    var helper func(int, int)
    helper = func(lBracketNum, rBracketNum int) {
        if len(oneShot) == 2 * n {
            ans = append(ans, string(oneShot))
            return  
        }
        if lBracketNum > 0 {
            oneShot = append(oneShot, '(')
            helper(lBracketNum-1, rBracketNum)
            oneShot = oneShot[:len(oneShot)-1]
        }
        if rBracketNum > 0 && rBracketNum > lBracketNum {
            oneShot = append(oneShot, ')')
            helper(lBracketNum, rBracketNum-1)
            oneShot = oneShot[:len(oneShot)-1]
        }
    } 
    helper(n, n)
    return ans
}

全部评论

相关推荐

05-09 12:23
已编辑
华南理工大学 Java
野猪不是猪🐗:给他装的,双九+有实习的能看的上这种厂我直接吃⑨✌们拿它练练面试愣是给他整出幻觉了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务