แอนนาแกรม:
คำหรือวลีสองคำที่สร้างได้โดยการจัดเรียงตัวอักษรของกันและกันในลำดับที่แตกต่างกันเรียกว่าแอนนาแกรมของกันและกัน เช่น หนูกับทาร์
เราจำเป็นต้องเขียนฟังก์ชัน 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' ] ]