Skip to content

Commit 1aba850

Browse files
generate parenthesis
1 parent 14f6ff5 commit 1aba850

File tree

2 files changed

+37
-0
lines changed

2 files changed

+37
-0
lines changed
+36
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
package medium;
2+
3+
import java.util.ArrayList;
4+
import java.util.List;
5+
6+
import utils.CommonUtils;
7+
8+
public class GenerateParentheses {
9+
public List<String> generateParenthesis(int n) {
10+
List<String> result = new ArrayList();
11+
backtrack(result, "", 0, 0, n);
12+
return result;
13+
}
14+
15+
void backtrack(List<String> result, String str, int left, int right, int max){
16+
if(str.length() == max*2){
17+
result.add(str);
18+
return;
19+
}
20+
21+
if(left < max){
22+
backtrack(result, str+"(", left+1, right, max);
23+
}
24+
25+
if(right < left){
26+
backtrack(result, str+")", left, right+1, max);
27+
}
28+
}
29+
30+
public static void main(String...args){
31+
GenerateParentheses test = new GenerateParentheses();
32+
int n = 3;
33+
List<String> result = test.generateParenthesis(n);
34+
CommonUtils.print(result);
35+
}
36+
}

README.md

+1
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@
6363
|43|[Multiply Strings](https://leetcode.com/problems/multiply-strings/)|[Solution]|||Medium
6464
|24|[Swap Nodes in Pairs](https://leetcode.com/problems/swap-nodes-in-pairs/)|[Solution](../../blob/master/EASY/src/easy/SwapNodesinPairs.java)|O(n)|O(1)|Easy| Recursion, LinkedList
6565
|23|[Merge k Sorted Lists](https://leetcode.com/problems/merge-k-sorted-lists/)|[Solution](../../blob/master/HARD/src/hard/MergeKSortedList.java)|O(n*logk)|O(logk)|Hard|Heap
66+
|22|[Generate Parentheses](https://leetcode.com/problems/generate-parentheses/)|[Solution](../../blob/master/MEDIUM/src/medium/GenerateParentheses.java)|TBD|O(n)|Medium|Backtracking
6667
|21|[Merge Two Sorted Lists](https://leetcode.com/problems/merge-two-sorted-lists/)|[Solution](../../blob/master/EASY/src/easy/MergeTwoSortedLists.java)|O(n)|O(1)|Easy|
6768
|20|[Valid Parentheses](https://leetcode.com/problems/valid-parentheses/)|[Solution](../../blob/master/EASY/src/easy/ValidParentheses.java)|O(n)|O(n)|Easy|Stack
6869
|17|[Letter Combinations of a Phone Number](https://leetcode.com/problems/letter-combinations-of-a-phone-number/)|[Solution](../../blob/master/MEDIUM/src/medium/LetterCombinationsofaPhoneNumber.java)|O(n*4^n)|O(n)|Medium|Backtracking

0 commit comments

Comments
 (0)