diff --git a/sik9252/BackspaceStringCompare.js b/sik9252/BackspaceStringCompare.js new file mode 100644 index 0000000..0155252 --- /dev/null +++ b/sik9252/BackspaceStringCompare.js @@ -0,0 +1,27 @@ +/** + * @param {string} s + * @param {string} t + * @return {boolean} + */ +var backspaceCompare = function (s, t) { + const calcS = calc(s); + const calcT = calc(t); + + return calcS === calcT; +}; + +var calc = function (str) { + const stack = []; + + for (let i = 0; i < str.length; i++) { + if (!stack.length && str[i] === "#") continue; + + if (str[i] === "#") { + stack.pop(); + } else { + stack.push(str[i]); + } + } + + return [...stack].join(""); +}; diff --git a/sik9252/CountingBits.js b/sik9252/CountingBits.js new file mode 100644 index 0000000..07510d7 --- /dev/null +++ b/sik9252/CountingBits.js @@ -0,0 +1,17 @@ +var countBits = function (n) { + const result = []; + + for (let i = 0; i <= n; i++) { + let num = i; + let count = 0; + + while (num > 0) { + num = num & (num - 1); + count++; + } + + result.push(count); + } + + return result; +};