อาร์เรย์แอนนาแกรม:
อาร์เรย์หนึ่งเป็นแอนนาแกรมของอีกอาร์เรย์หนึ่ง หากเราสามารถสุ่มองค์ประกอบของอาร์เรย์นั้นเพื่อให้ได้อาร์เรย์อื่นได้
ตัวอย่างเช่น −
[1, 2, 3] and [2, 1, 3] are anagrams of each other.
สมมติว่าเรามีสองอาร์เรย์ arr1 และ arr2 ซึ่งเป็นแอนนาแกรมของกันและกัน
เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่รับอาร์เรย์ทั้งสองนี้และส่งกลับอาร์เรย์การแมปใหม่ที่มีความยาวเท่ากับ arr1 และ arr2 อาร์เรย์การแมปควรมีดัชนีขององค์ประกอบของอาร์เรย์ arr1 เนื่องจากมีอยู่ในอาร์เรย์ arr2
ตัวอย่างเช่น −
หากอาร์เรย์อินพุตทั้งสองเป็น −
const arr1 = [23, 39, 57, 43, 61]; const arr2 = [61, 23, 43, 57, 39];
จากนั้นผลลัพธ์ควรเป็น −
const output = [1, 4, 3, 2, 0];
เพราะรายการที่ดัชนี 0 ใน arr1 อยู่ที่ดัชนี 1 ใน arr2
รายการที่ดัชนี 1 ใน arr1 อยู่ที่ดัชนี 4 ใน arr2 เป็นต้น
ตัวอย่าง
รหัสสำหรับสิ่งนี้จะเป็น −
const arr1 = [23, 39, 57, 43, 61]; const arr2 = [61, 23, 43, 57, 39]; const anagramMappings = (arr1 = [], arr2 = []) => { const res = []; for(let i = 0; i < arr1.length; i++) { for(let j = 0; j < arr2.length; j++) { if(arr1[i] == arr2[j]){ res.push(j); }; }; }; return res; }; console.log(anagramMappings(arr1, arr2));
ผลลัพธ์
และผลลัพธ์ในคอนโซลจะเป็น −
[ 1, 4, 3, 2, 0 ]