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

กำลังตรวจสอบสตริงแอนนาแกรม JavaScript


แอนนาแกรม

แอนนาแกรมคือคู่สตริงเหล่านั้น โดยหนึ่งในนั้นเมื่อจัดลำดับใหม่ในรูปแบบที่แน่นอนจะได้คู่สตริงอีกอันหนึ่ง

ตัวอย่างเช่น −

'hello' และ 'lolhe' เป็นแอนนาแกรมเพราะเราสามารถจัดลำดับ 'lolhe' ใหม่เพื่อสร้างสตริง 'hello' หรือในทางกลับกันได้

เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่มีสองสตริง กล่าวคือ str1 และ str2 ฟังก์ชันควรคืนค่า จริง หากสตริงเป็นแอนนาแกรมของกันและกัน มิฉะนั้น จะเป็นเท็จ

เราสามารถสร้างแผนที่ที่นับจำนวนอักขระสำหรับแต่ละสตริงอินพุต จากนั้น เราสามารถเปรียบเทียบแผนที่เพื่อดูว่าเหมือนกันหรือไม่

ตัวอย่าง

const str1 = 'hello';
const str2 = 'lolhe';
const charCount = string => {
   const table = {};
   for (let char of string.replace(/\W/g, "").toLowerCase()) table[char] = table[char] + 1 || 1;
   return table;
};
const anagrams = (stringA, stringB) => {
   const charCountA = charCount(stringA); const charCountB = charCount(stringB);
   if (Object.keys(charCountA).length !== Object.keys(charCountB).length)
      return false;
      for (let char in charCountA)
      if (charCountA[char] !== charCountB[char])
         return false;
      return true;
};
console.log(anagrams(str1, str2));

ผลลัพธ์

และผลลัพธ์ในคอนโซลจะเป็น −

true