22. 括号生成
数字 n
代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。
示例 1:
输入:n = 3
输出:["((()))","(()())","(())()","()(())","()()()"]
示例 2:
输入:n = 1
输出:["()"]
提示:
1 <= n <= 8
解题思路
学习思路:Leetcode力扣22 手画图解版|括号生成Generate Parentheses
深度优先算法
代码实现
var generateParenthesis = function(n) {
let result=[];
function dfs(leftNum,rightNum,str){
if(str.length ==2*n){
result.push(str);
}
if(leftNum>0){
dfs(leftNum-1,rightNum,str+'(');
}
if(leftNum<rightNum){
dfs(leftNum,rightNum-1,str+')');
}
return
}
dfs(n,n,'')
return result;
};