Maximum Number of Removable Characters LeetCode solution in JavaScript

1
var maximumRemovals = function (s, p, removable) {
2
let arr = s.split("");
3

4
const stillFunctions = (k) => {
5
let result = [...arr];
6
for (let i = 0; i < k; i++) {
7
result[removable[i]] = "";
8
}
9

10
const isSubset = () => {
11
let idx = 0;
12
for (let c = 0; c < p.length; c++) {
13
if (idx > result.length) return false;
14
const next = result.indexOf(p[c], idx);
15
if (next === -1) {
16
return false;
17
}
18
idx = next + 1;
19
}
20
return true;
21
};
22

23
return isSubset();
24
};
25

26
let left = 0;
27
let right = removable.length;
28

29
while (left < right) {
30
// Need to round up the midpoint since we are returning operation LENGTH i.e. ops+1
31
const mid = Math.ceil((left + right) / 2);
32
if (!stillFunctions(mid)) {
33
right = mid - 1;
34
} else {
35
left = mid;
36
}
37
}
38
return left;
39
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0