Number of Ways to Select Buildings LeetCode solution in JavaScript

1
var numberOfWays = function (s) {
2
const len = s.length;
3
const prefix = new Array(len).fill(0).map(() => new Array(2).fill(0));
4
for (let i = 0; i < len; i++) {
5
const idx = s[i] == "1" ? 1 : 0;
6
if (i == 0) prefix[i][idx]++;
7
else {
8
prefix[i] = Array.from(prefix[i - 1]);
9
prefix[i][idx]++;
10
}
11
}
12
let ans = 0;
13
for (let i = 1; i < len - 1; i++) {
14
const c = s[i] == "1" ? 0 : 1;
15
ans += (prefix.at(-1)[c] - prefix[i][c]) * prefix[i - 1][c];
16
}
17
return ans;
18
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0