检查字符串字谜JavaScript

字谜

字谜是那些字符串对,其中的一对以某种模式重新排序时会产生另一对。

例如-

“ hello”和“ lolhe”是字谜,因为我们可以对“ lolhe”重新排序以形成字符串“ hello”,反之亦然。

我们需要编写一个包含两个字符串的JavaScript函数,例如str1和str2。如果字符串彼此相同,则该函数应返回true,否则返回false。

我们可以创建一个映射,计算每个输入字符串的字符数。然后,我们可以比较映射以查看它们是否相同。

示例

const str1 = 'hello';
const str2 = 'lolhe';
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;
};
console.log(anagrams(str1, str2));

输出结果

控制台中的输出将是-

true