leetcode22括号生成

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

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

[
  "((()))",
  "(()())",
  "(())()",
  "()(())",
  "()()()"
]
class Solution {
public:
    vector<string> generateParenthesis(int n) {
           vector<string>  result;
           generate("",n,n,result);
           return result;
    }
private:
    void generate(string item , int left,int right,vector<string> &result)
{
	if(left==0&&right==0){
		result.push_back(item);
		return;
	}
	if(left>0)
   generate(item+"(",left-1,right,result);
   if(left<right)
   generate(item+")",left,right-1,result);
}

};

猜你喜欢

转载自blog.csdn.net/jd_457619512/article/details/88699573