1
+ // Runtime: 32 ms (Top 59.76%) | Memory: 51.4 MB (Top 55.86%)
2
+
1
3
class Solution {
2
-
4
+
3
5
public String getHappyString (int n , int k ) {
4
- List <String > innerList = new ArrayList <>();
5
- getHappyStringUtil (n , k , new char [] { 'a' , 'b' , 'c' }, new StringBuilder (), innerList );
6
- if (innerList .size () < k )
7
- return "" ;
8
- return innerList .get (k - 1 );
9
- }
6
+ List <String > innerList = new ArrayList <>();
7
+ getHappyStringUtil (n , k , new char [] { 'a' , 'b' , 'c' }, new StringBuilder (), innerList );
8
+ if (innerList .size () < k )
9
+ return "" ;
10
+ return innerList .get (k - 1 );
11
+ }
10
12
11
- public void getHappyStringUtil (int n , int k , char [] letter , StringBuilder tempString , List <String > innerList ) {
12
- // Base case
13
- if (tempString .length () == n ) {
14
- innerList .add (tempString .toString ());
15
- return ;
16
- }
13
+ public void getHappyStringUtil (int n , int k , char [] letter , StringBuilder tempString , List <String > innerList ) {
14
+ // Base case
15
+ if (tempString .length () == n ) {
16
+ innerList .add (tempString .toString ());
17
+ return ;
18
+ }
17
19
18
- // Recursive call
19
- for (int i = 0 ; i < 3 ; i ++) {
20
- if (tempString .length () > 0 && tempString .charAt (tempString .length () - 1 ) == letter [i ])
21
- continue ;
22
- tempString .append (letter [i ]);
23
- getHappyStringUtil (n , k , letter , tempString , innerList );
24
- tempString .deleteCharAt (tempString .length () - 1 );
25
- }
20
+ // Recursive call
21
+ for (int i = 0 ; i < 3 ; i ++) {
22
+ if (tempString .length () > 0 && tempString .charAt (tempString .length () - 1 ) == letter [i ])
23
+ continue ;
24
+ tempString .append (letter [i ]);
25
+ getHappyStringUtil (n , k , letter , tempString , innerList );
26
+ tempString .deleteCharAt (tempString .length () - 1 );
27
+ }
26
28
27
- }
28
- }
29
+ }
30
+ }
0 commit comments