Generate Parentheses
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:
"((()))", "(()())", "(())()", "()(())", "()()()"
看到这道题目的反应就是动规。。。实际上是递归的思想,想法非常好
注意auto的意思:
auto:用来声明自动变量。它是存储类型标识符,表明变量(自动)具有本地范围,块范围的变量声明(如for循环体内的变量声明)默认为auto存储类型。
class Solution {
public:
vector<string> generateParenthesis(int n) {
if(n==0) return vector<string>(1,"");
if(n==1) return vector<string>(1,"()");
vector<string> result;
for(int i=0;i<n;i++)
{
for(auto inner : generateParenthesis (i))
{
for(auto outer : generateParenthesis(n-i-1))
{
result.push_back("("+inner+")"+outer);
}
}
}
return result;
}
};