From f1ddfb4db60b413f593abd12ac92e875d23d1f65 Mon Sep 17 00:00:00 2001 From: sricharanlochan Date: Wed, 11 May 2022 20:42:55 +0100 Subject: [PATCH 1/2] Create 22-Generate-Paranthesis.java --- java/22-Generate-Paranthesis.java | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 java/22-Generate-Paranthesis.java diff --git a/java/22-Generate-Paranthesis.java b/java/22-Generate-Paranthesis.java new file mode 100644 index 000000000..72de2e613 --- /dev/null +++ b/java/22-Generate-Paranthesis.java @@ -0,0 +1,27 @@ +class GenerateParentheses { + public List generateParentheses(int n) { + List result = new ArrayList<>(); + Stack stack = new Stack<>(); + + backtrack(0, 0, n, result, stack); + return result; + } + + public void backtrack(int open, int closed, int n, List result, Stack stack) { + if (open == n && closed == n) { + result.add(stack.stream().collect(Collectors.joining(""))); + } + + if (open < n) { + stack.push("("); + backtrack(open + 1, closed, n, result, stack); + stack.pop(); + } + + if (closed < open) { + stack.push(")"); + backtrack(open, closed + 1, n, result, stack); + stack.pop(); + } + } +} From 58ef10728daa693994311f902f3c9b09a97c1b05 Mon Sep 17 00:00:00 2001 From: sricharanlochan Date: Wed, 11 May 2022 20:51:30 +0100 Subject: [PATCH 2/2] Update and rename 22-Generate-Paranthesis.java to 22-Generate-Parenthesis.java --- ...nerate-Paranthesis.java => 22-Generate-Parenthesis.java} | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) rename java/{22-Generate-Paranthesis.java => 22-Generate-Parenthesis.java} (77%) diff --git a/java/22-Generate-Paranthesis.java b/java/22-Generate-Parenthesis.java similarity index 77% rename from java/22-Generate-Paranthesis.java rename to java/22-Generate-Parenthesis.java index 72de2e613..ff4fdf64b 100644 --- a/java/22-Generate-Paranthesis.java +++ b/java/22-Generate-Parenthesis.java @@ -1,5 +1,5 @@ -class GenerateParentheses { - public List generateParentheses(int n) { +class GenerateParenthesis { + public List generateParenthesis(int n) { List result = new ArrayList<>(); Stack stack = new Stack<>(); @@ -7,7 +7,7 @@ public List generateParentheses(int n) { return result; } - public void backtrack(int open, int closed, int n, List result, Stack stack) { + private void backtrack(int open, int closed, int n, List result, Stack stack) { if (open == n && closed == n) { result.add(stack.stream().collect(Collectors.joining(""))); }