Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

การจัดกลุ่มคำด้วยแอนนาแกรมใน JavaScript


แอนนาแกรม:

คำหรือวลีสองคำที่สร้างได้โดยการจัดเรียงตัวอักษรของกันและกันในลำดับที่แตกต่างกันเรียกว่าแอนนาแกรมของกันและกัน เช่น หนูกับทาร์

เราจำเป็นต้องเขียนฟังก์ชัน 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' ] ]