Programing/Algorithm
[LeetCode] 22. Generate Parentheses
Napoliano
2025. 2. 10. 13:36
728x90
https://leetcode.com/problems/generate-parentheses/description/
public class Solution
{
public IList<string> GenerateParenthesis(int n)
{
var answer = new List<string>();
Func(answer, "", "(", 0, 0, n);
return answer;
}
private void Func(IList<string> answer, string current, string piece, int leftCount, int rightCount, int n)
{
if (piece == "(")
++leftCount;
else
++rightCount;
if ((leftCount > n) || (rightCount > n) || (leftCount < rightCount))
return;
current = current + piece;
if ((leftCount == rightCount) && (leftCount + rightCount == n * 2))
{
answer.Add(current);
return;
}
Func(answer, current, "(", leftCount, rightCount, n);
Func(answer, current, ")", leftCount, rightCount, n);
}
}
728x90