使用 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' ] ]
廣告
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP