diff --git a/GenerateParentheses.java b/GenerateParentheses.java new file mode 100644 index 0000000..26ea48e --- /dev/null +++ b/GenerateParentheses.java @@ -0,0 +1,25 @@ +class Solution { + public List generateParenthesis(int n) { + List combs = new ArrayList<>(); + generate(n, n, new StringBuilder(), combs); + return combs; + } + + public void generate(int open, int close, StringBuilder sb, List combs){ + if(open == 0 && close == 0){ + combs.add(sb.toString()); + return; + } + if(open > 0){ + sb.append("("); + generate(open - 1, close, sb, combs); + sb.delete(sb.length() - 1, sb.length()); + } + + if(close > 0 && open < close){ + sb.append(")"); + generate(open, close - 1, sb, combs); + sb.delete(sb.length() - 1, sb.length()); + } + } +}