Given n pairs of parentheses, write a function to generate all combinations of well-formed parentheses.
For example, given n = 3, a solution set is:
"((()))", "(()())", "(())()", "()(())", "()()()"
n=2,就是在n=1 “()”的基础上插入一对括号,可以插在0,1,2三个位置,只是有时候结果会重复,如这里插入0和2的位置结果一样是重复的 ,所以后结果要去重
……
#include
#include
#include
#include
using namespace std;
class Solution {
public:
vector
generateParenthesis(int n) { vector
retV; if(n==1) { retV.push_back("()"); return retV; } else if(n<=0) return retV; else { vector
tmp=generateParenthesis(n-1); for(int i=0;i
::iterator it=unique(retV.begin(),retV.end()); retV.resize(distance(retV.begin(),it)); return retV; } }; int main() { Solution s; cout<
<