Created
December 8, 2022 21:39
-
-
Save torressam333/b6b7063ab73eeb438cefc305e38f4024 to your computer and use it in GitHub Desktop.
Valid Anagram Challenge - Accounts for Whitespaces, special chars and letter casing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const validAnagram = (str1, str2) => { | |
// convert to lowercase and remove spaces | |
str1 = str1.replace(/\s+/g, "").toLowerCase(); | |
str2 = str2.replace(/\s+/g, "").toLowerCase(); | |
// Check for length once whitespace is removed | |
if (str1.length !== str2.length) return false; | |
// Only nums and lowercase letters allowed | |
const regex = /^[\w.-]+$/; | |
if (!regex.test(str1) || !regex.test(str2)) return false; | |
let chars = {}; | |
for (let letter of str1) { | |
// Add in each letter to the store of chars | |
chars[letter] = (chars[letter] || 0) + 1; | |
} | |
for (let letter of str2) { | |
if (!chars[letter]) return false; | |
else chars[letter] -= 1; | |
} | |
return true; | |
}; | |
console.log(validAnagram("texTtwi stti!2me", "tim2et!wisttext")); // false |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment