บทความนี้สาธิตการ shuffle สตริงโดยย้ายตัวอักษรตำแหน่ง i ไปตำแหน่ง arr[i]
ตัวอย่าง
str = 'example', arr = [5, 2, 0, 6, 4, 1, 3] output: 'alxepem'
ตัวอย่างโค้ด
const str = 'example';
const arr = [5, 2, 0, 6, 4, 1, 3];
const shuffleString = (str = '', arr = []) => {
let res = '';
const map = new Map();
for (let i = 0; i < arr.length; i++) {
const char = str.charAt(i), index = arr[i];
map.set(index, char);
}
for (let i = 0; i < arr.length; i++) {
res += map.get(i);
}
return res;
};
console.log(shuffleString(str, arr));
ผลลัพธ์
alxepem
คำอธิบาย
ใช้ Map เก็บ mapping index -> character จากอาร์เรย์ arr แล้วสร้างสตริงใหม่โดยอ่าน map ตามลำดับ index 0,1,2...
วิธีทางเลือก: สร้างอาร์เรย์ขนาดเท่าเดิม arr2[arr[i]] = str[i] แล้ว join