Decode String LeetCode solution in Java

1
class Solution {
2
public String decodeString(String s) {
3

4
int bb = s.indexOf('['); // location of beginning bracket
5
int nbb = s.indexOf('[', bb + 1); // location of next beginning bracket
6
int eb = s.indexOf(']'); // location of ending bracket
7

8
int n = 0; // number of times to repeat
9
int nl = 1; // number of digits for n
10
char nd; // next digit
11

12
String insert = ""; // repeated string
13
String end = ""; // remainder of string after repeated portion
14

15
while (bb != -1) { // while the string contains a beginning bracket
16

17
while (nbb < eb
18
&& nbb > bb) { // while the next beginning bracket is before the ending bracket
19
bb = nbb; // update location of beginning bracket
20
nbb = s.indexOf('[', bb + 1); // update location of next beginning bracket
21
}
22

23
nl = 1; // reset length of n
24
while (bb - nl >= 0) { // while there are characters in front of the beginning bracket
25
nd = s.charAt(bb - nl); // next digit
26
if (nd <= '9' && nd >= '0') { // if next digit is an integer
27
n += (int) (nd - '0') * Math.pow(10, nl - 1); // update value of n
28
nl++; // increment length of n
29
} else break; // not an integer
30
}
31

32
insert = s.substring(bb + 1, eb); // set repeated string
33
end = s.substring(eb + 1); // set remainder of string
34
s = s.substring(0, bb - nl + 1); // remove everything after the digits
35

36
while (n > 0) {
37
s += insert; // add repeated string n times
38
n--;
39
}
40
s += end; // add remainder of string
41

42
bb = s.indexOf('['); // new location of beginning bracket
43
nbb = s.indexOf('[', bb + 1); // new location of next beginning bracket
44
eb = s.indexOf(']'); // new location of ending bracket
45
}
46
return s;
47
}
48
}

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0