题解 | #括号生成#

括号生成

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

package main

/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 *
 * @param n int整型
 * @return string字符串一维数组
 */
func generateParenthesis(n int) []string {
	var result []string
	backtrack(&result, "", 0, 0, n)
	return result
}

func backtrack(result *[]string, cur string, open, close, max int) {
	if len(cur) == max*2 {
		*result = append(*result, cur)
		return
	}
    // 如果左括号的数量小于n,可以添加一个左括号。
	if open < max {
		backtrack(result, cur+"(", open+1, close, max)
	}
    // 如果右括号的数量小于左括号的数量,可以添加一个右括号。
	if close < open {
		backtrack(result, cur+")", open, close+1, max)
	}
}

全部评论

相关推荐

07-07 17:06
已编辑
深圳技术大学 golang
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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