使用 JavaScript 按同位異構詞對其分組


同位異構詞

如果兩個單詞或短語可以透過以不同順序排列各個字母來構成,則稱這兩個單詞或短語是彼此的同位異構詞,例如 rat 和 tar。

我們需要編寫一個 JavaScript 函式,該函式輸入一個可能包含一些同位異構詞字串的字串陣列。該函式應將所有同位異構詞分組到單獨的子陣列中,並返回由此形成的新陣列。

例如 −

如果輸入陣列是 −

const arr = ['rat', 'jar', 'tar', 'raj','ram', 'arm', 'mar', 'art'];

則輸出陣列應為 −

const output = [
   ['rat', 'tar', 'art'],
   ['jar', 'raj'],
   ['ram', 'arm', 'mar']
];

示例

以下是程式碼 −

const arr = ['rat', 'jar', 'tar', 'raj','ram', 'arm', 'mar', 'art'];
const groupSimilarWords = (arr = []) => {
   if (arr.length === 0){
      return arr;
   };
   const map = new Map();
   for(let str of arr){
      let sorted = [...str];
      sorted.sort();
      sorted = sorted.join('');
      if(map.has(sorted)){
         map.get(sorted).push(str);
      }else{
         map.set(sorted, [str])
      };
   };
   return [...map.values()];
};
console.log(groupSimilarWords(arr));

輸出

以下是控制檯輸出 −

[ [ 'rat', 'tar', 'art' ], [ 'jar', 'raj' ], [ 'ram', 'arm', 'mar' ] ]

更新日期:27-Jan-2021

950 次瀏覽

開始你的 職業生涯

完成課程後獲得認證

開始
廣告
© . All rights reserved.