Anagrams
Anagrams are words
or phrases
that contain the same number of characters. Create a function
that checks for this.
Solution
const charCount = string => {
const table = {};
for (let char of string.replace(/\W/g, "").toLowerCase())
table[char] = table[char] + 1 || 1;
return table;
};
const anagrams = (stringA, stringB) => {
const charCountA = charCount(stringA);
const charCountB = charCount(stringB);
if (Object.keys(charCountA).length !== Object.keys(charCountB).length)
return false;
for (let char in charCountA)
if (charCountA[char] !== charCountB[char]) return false;
return true;
}
export function areAnagrams(s1: string, s2: string): boolean {
const charCount = new Map<string, number>();
for (const char of s1.split('')) {
charCount.set(char, (charCount.get(char) || 0) + 1);
}
for (const char of s2.split('')) {
if (!charCount.has(char)) return false;
charCount.set(char, charCount.get(char) - 1);
}
return Array.from(charCount.values()).every(val => val === 0);
}
comments powered by Disqus