leetcode22.括号生成
回溯算法-22.括号生成
题目
数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。
有效括号组合需满足:左括号必须以正确的顺序闭合。
用例
输入:n = 3
输出:["((()))","(()())","(())()","()(())","()()()"]
输入:n = 1
输出:["()"]
求解
/**
* @param {number} n
* @return {string[]}
*/
var generateParenthesis = function(n) {
const res = []
const path = []
bracket_generating(n,n)
return res
function bracket_generating(left_num,right_num){
if(left_num==0&&right_num==0){
res.push(path.join(""));
return
}
if(left_num==right_num){
path.push("(")
bracket_generating(left_num-1,right_num)
path.pop()
}
if(left_num<right_num){
if(left_num!=0){
path.push("(")
bracket_generating(left_num-1,right_num)
path.pop()
}
path.push(")")
bracket_generating(left_num,right_num-1)
path.pop()
}
}
};

浙公网安备 33010602011771号