javascript 括号生成LeetCod-22

版权声明:本文为博主原创文章,未经博主允许不得转载

题目描述:

给出 n 代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合。

例如,给出 n = 3,生成结果为:

[
  "((()))",
  "(()())",
  "(())()",
  "()(())",
  "()()()"
]
var generateParenthesis = function(n) {
	var left,right;
	left=right=n;
	var result=[],str="";
	GG(left,right,result,str);
	return result;
	function GG(left,right,result,str){
		if(left>right){
			return;
		}
		if(left==0&&right==0){
			result.push(str)
		}
		else{
			if(left>0)
				GG(left-1,right,result,str.concat("("));
			if(right>0)
				GG(left,right-1,result,str.concat(")"))
		}
	}
};
    

 

你可能感兴趣的:(经典算法)