Decoded String at Index LeetCode solution in JavaScript

1
var decodeAtIndex = function (s, k) {
2
let len = 0;
3
let isDigit = false;
4

5
for (let v of s) {
6
if (v >= "0" && v <= "9") {
7
len *= +v;
8
isDigit = true;
9
} else {
10
len++;
11
if (len === k && !isDigit) {
12
return s[k - 1];
13
}
14
}
15
}
16

17
for (let i = s.length - 1; i >= 0; i--) {
18
const v = s[i];
19
if (v >= "0" && v <= "9") {
20
len = Math.ceil(len / +v); // Math.floor() wont work because we endup leaving few strings
21
k %= len;
22
} else {
23
if (k === 0 || k === len) {
24
return v;
25
}
26
len--;
27
}
28
}
29
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0