題目:
Given n pairs of parentheses, write a function to generate all combinations of well-formed parentheses.
這道題題意相對簡單,就是生成正确的比對的括号。
class Solution {
public:
void generate(int left, int right, string str, vector<string>&parenthesis){
if(left > right || right < 0 || left < 0)return;
else if(right == 0){
parenthesis.push_back(str);
return;
}
else
{
string str1 = str + "(";
generate(left - 1, right, str1, parenthesis);
string str2 = str + ")";
generate(left, right - 1, str2, parenthesis);
}
}
vector<string> generateParenthesis(int n) {
vector<string>parenthesis;
generate(n, n, "", parenthesis);
return parenthesis;
}
};