括号生成
解题思路:
递归。
代码:
public static IList<string> GenerateParenthesis(int n)
{
IList<string> result = new List<string>();
string lgx = string.Empty;
find(n, n, ref result, lgx);
return result;
}
public static void find(int left, int right, ref IList<string> result, string lgx)
{
if (left == 0 && right == 0)
{
result.Add(lgx);
return;
}
if (left > 0)
{
find(left-1, right, ref result, lgx+"(");
}
if (right > left)
{
find(left, right-1, ref result, lgx+")");
}
}