In the Leetcode Generate Parentheses problem solution in Java programming Given n pairs of parentheses, write a function to generate all combinations of well-formed parentheses.
Leetcode Generate Parentheses problem solution in Java programming
class Solution {
public List<String> generateParenthesis(int n) {
List<String> result = new ArrayList();
StringBuilder currStr = new StringBuilder();
int leftPars = n;
int rightPars = n;
dfs(leftPars, rightPars, currStr, result);
return result;
// T.C: O(n)
// S.C: O(n)
}
public void dfs(int leftPars, int rightPars, StringBuilder currStr, List<String> result) {
if (leftPars == 0 && rightPars == 0) {
result.add(currStr.toString());
return;
}
if (leftPars > 0) {
currStr.append("(");
dfs(leftPars - 1, rightPars, currStr, result);
currStr.deleteCharAt(currStr.length() - 1);
}
if (rightPars > 0 && rightPars > leftPars) {
currStr.append(")");
dfs(leftPars, rightPars - 1, currStr, result);
currStr.deleteCharAt(currStr.length() - 1);
}
}
}
Also read,
- Leetcode Generate Parentheses problem solution in C++
- Leetcode Generate Parentheses problem solution in C
- Leetcode Generate Parentheses problem solution in Python
- Leetcode Generate Parentheses problem solution in C#