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