Cho chuỗi chỉ chứa chữ thường. Định nghĩa dịch chuyển đơn vị: thay ký tự bằng ký tự kế tiếp trong bảng chữ cái (có vòng: sau 'z' là 'a').
Cần viết hàm JS nhận chuỗi str và mảng số arr cùng độ dài. Hàm tạo chuỗi mới với các ký tự được dịch chuyển theo số đơn vị tương ứng trong arr.
Ví dụ:
Nếu chuỗi và mảng:
const str = 'dab'; const arr = [1, 4, 6];
Kết quả:
const output = 'eeh';
Ví dụ
Mã thực hiện:
const str = 'dab'; const arr = [1, 4, 6]; const shiftString = (str = '', arr = []) => { const legend = '-abcdefghijklmnopqrstuvwxyz'; let res = ''; for(let i = 0; i < arr.length; i++){ const el = str[i]; const shift = arr[i]; const index = legend.indexOf(el); let newIndex = index + shift; newIndex = newIndex <= 26 ? newIndex : newIndex % 26; res += legend[newIndex]; }; return res; }; console.log(shiftString(str, arr));
Kết quả
Kết quả in ra console:
eeh