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

Thực hiện dịch chuyển trong chuỗi bằng JavaScript


Cho chuỗi str chứa chữ thường, và mảng arr với arr[i] = [direction, amount]:

  • direction: 0 (dịch trái) hoặc 1 (dịch phải).

  • amount: số lượng dịch chuyển.

  • Dịch trái 1: bỏ ký tự đầu, thêm vào cuối.

  • Dịch phải 1: bỏ ký tự cuối, thêm vào đầu.

Cần viết hàm JS nhận chuỗi và mảng dịch chuyển, thực hiện các dịch chuyển và trả về chuỗi mới.

Ví dụ:

Nếu chuỗi và mảng:

const str = 'abc'; const arr = [[0, 1], [1, 2]];

Kết quả:

const output = 'cab';

giải thích: [0,1] dịch trái 1: "abc" -> "bca"; [1,2] dịch phải 2: "bca" -> "cab"

Ví dụ

Mã thực hiện:

const str = 'abc'; const arr = [[0, 1], [1, 2]]; const performShifts = (str = '', arr = []) => {    if(str.length < 2){       return str;    };    let right = 0    let left = 0;    for(let sub of arr){       if(sub[0] == 0){          left += sub[1];       }else{          right += sub[1];       };    };    if(right === left){       return str;    }    if(right > left){       right = right - left;       right = right % str.length;       return str.substring(str.length - right) + str.substring(0,       str.length - right);    }else{       left = left - right;       left = left % str.length;       return str.substring(left) + str.substring(0,left);    }; }; console.log(performShifts(str, arr));

Kết quả

Kết quả in ra console:

cab