Magical String LeetCode solution in JavaScript
1var magicalString = function (n) {2const stack = ["1", "2", "2"];3let magic = 2;45while (stack.length < n) {6const count = stack[magic++];7const last = stack[stack.length - 1];8const addStr = last === "1" ? "2" : "1";910for (let n = 1; n <= count; n++) stack.push(addStr);11}12return stack.slice(0, n).filter((str) => str === "1").length;13};