diff --git a/number-of-1-bits/junzero741.ts b/number-of-1-bits/junzero741.ts new file mode 100644 index 000000000..2c8aa49cd --- /dev/null +++ b/number-of-1-bits/junzero741.ts @@ -0,0 +1,13 @@ +// TC: O(log n) +// SC: O(1) +function hammingWeight(n: number): number { + const binary = n.toString(2); + let bits = 0; + for(let i = 0; i < binary.length; i++) { + if(binary[i] === '1') { + bits++; + } + } + + return bits; +}; diff --git a/valid-palindrome/junzero741.ts b/valid-palindrome/junzero741.ts new file mode 100644 index 000000000..1f5bf7cbd --- /dev/null +++ b/valid-palindrome/junzero741.ts @@ -0,0 +1,29 @@ +// TC: O(n) +// SC: O(1) +function isPalindrome(s: string): boolean { + + let L = 0; + let R = s.length-1; + + while(R > 0 && L < s.length - 1 && L <= R) { + if(!isAlphanumeric(s[L])) { + L++; + continue; + } + if(!isAlphanumeric(s[R])) { + R--; + continue; + } + if(s[L].toLowerCase() !== s[R].toLowerCase()) { + return false; + } + L++; + R--; + } + + return true; +}; + +function isAlphanumeric(str: string): boolean { + return /^[a-zA-Z0-9]+$/.test(str); +}