|
1 | | - |
2 | 1 | public class GenerateParentheses { |
3 | | - public static void main(String[] args){ |
| 2 | + public static void main(String[] args) { |
4 | 3 | int N = 3; |
5 | | - generateParentheses(new char[2*N], N, N, 0); |
| 4 | + generateParentheses(new char[2 * N], N, N, 0); |
6 | 5 |
|
7 | 6 | System.out.println(isGoodParentheses("(()][())".toCharArray())); |
8 | 7 | } |
9 | | - public static void generateParentheses(char[] prefix, int left, int right, int level){ |
10 | | - if(left > right || left < 0) |
| 8 | + |
| 9 | + public static void generateParentheses(char[] prefix, int left, int right, int level) { |
| 10 | + if (left > right) |
11 | 11 | return; |
12 | | - if(left ==0 && right == 0) { |
| 12 | + if (left == 0 && right == 0) { |
13 | 13 | System.out.println(String.valueOf(prefix)); |
14 | 14 | return; |
15 | | - } |
16 | | - else { |
17 | | - if(left>0){ |
| 15 | + } else { |
| 16 | + if (left > 0 && right >= 0) { |
18 | 17 | prefix[level] = '('; |
19 | | - generateParentheses(prefix, left-1, right, level+1); |
| 18 | + generateParentheses(prefix, left - 1, right, level + 1); |
20 | 19 | } |
21 | | - if(right> 0){ |
| 20 | + if (right > 0 && left >= 0) { |
22 | 21 | prefix[level] = ')'; |
23 | | - generateParentheses(prefix, left, right-1, level+1); |
| 22 | + generateParentheses(prefix, left, right - 1, level + 1); |
24 | 23 | } |
25 | 24 | } |
26 | 25 |
|
27 | 26 | } |
28 | 27 |
|
29 | | - public static boolean isGoodParentheses(char[] s){ |
| 28 | + |
| 29 | + public static boolean isGoodParentheses(char[] s) { |
30 | 30 |
|
31 | 31 | int level1 = 0; |
32 | 32 | int level2 = 0; |
33 | 33 |
|
34 | | - for(int i = 0 ; i < s.length; i++){ |
35 | | - if(level1==0) |
36 | | - if(s[i] ==')') |
| 34 | + for (int i = 0; i < s.length; i++) { |
| 35 | + if (level1 == 0) |
| 36 | + if (s[i] == ')') |
37 | 37 | return false; |
38 | | - if(level2==0) |
39 | | - if(s[i] ==']') |
| 38 | + if (level2 == 0) |
| 39 | + if (s[i] == ']') |
40 | 40 | return false; |
41 | 41 |
|
42 | | - if(s[i] == '(') |
| 42 | + if (s[i] == '(') |
43 | 43 | level1++; |
44 | | - if(s[i]==')') |
| 44 | + if (s[i] == ')') |
45 | 45 | level1--; |
46 | | - if(s[i] == '[') |
| 46 | + if (s[i] == '[') |
47 | 47 | level2++; |
48 | | - if(s[i]==']') |
| 48 | + if (s[i] == ']') |
49 | 49 | level2--; |
50 | 50 |
|
51 | 51 | } |
52 | 52 |
|
53 | | - return (level1==0)&&(level2==0); |
| 53 | + return (level1 == 0) && (level2 == 0); |
54 | 54 | } |
55 | 55 | } |
0 commit comments