检查 JavaScript 中回文字符串的排列


我们需要编写一个 JavaScript 函数,它将一个字符串作为第一个且唯一的参数。

我们的函数的任务是检查字符串中字符的任何重新排列是否会导致一个回文串。如果是,那么我们的函数应返回 true,否则返回 false。

例如,-

如果输入字符串是 -

const str = 'amadm';

那么输出应为 -

const output = true;

因为该字符串可以重新排列以形成“madam”,这是一个回文串。

示例

此代码为 -

 在线演示

const str = 'amadm';
const canFormPalindrome = (str = '') => {
   const hash = {};
   let count = 0;
   for (let i = 0; i < str.length; i++) {
      let c = str[i];
      if(c === ' '){
         continue;
      };
      if(hash[c]){
         delete hash[c];
      }else{
         hash[c] = true;
      };
      count++;
   };
   if(count % 2 === 0){
      return Object.keys(hash).length === 0;
   }else{
      return Object.keys(hash).length === 1;
   };
};
console.log(canFormPalindrome(str));

输出

控制台中的输出为 -

true

更新于: 2021 年 2 月 26 日

588 次浏览

开启您的职业

完成课程以获得认证

开始吧
广告