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