Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Xáo trộn chuỗi dựa trên mảng trong JavaScript

Chúng ta cần viết một hàm JavaScript nhận vào một chuỗi, gọi là str làm đối số đầu tiên và một mảng số nguyên dương, gọi là arr cùng độ dài làm đối số thứ hai.

Hàm của chúng ta nên xáo trộn các ký tự trong chuỗi sao cho ký tự tại vị trí i di chuyển đến arr[i] trong chuỗi đã xáo trộn.

Ví dụ:

Nếu chuỗi đầu vào và mảng là:

const str = 'example'; const arr = [5, 2, 0, 6, 4, 1, 3];

Thì đầu ra nên là:

const output = 'alxepem';

Ví dụ

Dưới đây là mã nguồn:

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));

Kết quả

Đầu ra trên console:

alxepem

Giải thích: arr[i] là vị trí đích của ký tự str[i]. Dùng Map/array để đặt ký tự tại vị trí mới. O(n) time/space. Giả định arr là permutation hợp lệ của [0..n-1].