给一个正整数 n ,返回所有包含 n 对括号的合法括号序列。
比如给 3 ,我们得返回这样一个序列(集合): ["((()))","(()())","(())()","()(())","()()()"] ,以此类推
set<string> generateParenthesis(int n)
{
if (n == 0)
return{ "" }; // 基本情况
set<string> ans;
for (int i = 0; i < n; i++)
{
for (string left : generateParenthesis(i)) // 挑选 s
{
for (string right : generateParenthesis(n - i - 1)) // 挑选 t
{
ans.insert("(" + left + ")" + right); // 构造
}
}
}
return ans;
}