Andaikan kita mempunyai str rentetan yang mengandungi huruf Inggeris huruf kecil dan arr tatasusunan, dengan arr[i] = [arah, jumlah] −
arah boleh menjadi 0 (anjakan ke kiri) atau 1 (anjakan ke kanan ).
jumlah ialah amaun rentetan s hendak dialihkan.
Menukar ke kiri dengan 1 bermakna mengalih keluar aksara pertama s dan menambahkannya ke penghujung.
Begitu juga, beralih ke kanan dengan 1 bermakna mengalih keluar aksara pertama s dan menambahkannya ke penghujung. Keluarkan aksara terakhir s dan tambahkannya pada permulaan.
Kita perlu menulis fungsi JavaScript yang menerima rentetan sebagai parameter pertama dan data tatasusunan yang mengandungi anjakan sebagai parameter kedua.
Fungsi harus berulang ke atas tatasusunan dan melakukan anjakan yang diperlukan dalam rentetan dan akhirnya mengembalikan rentetan baharu.
Contohnya -
Jika rentetan dan tatasusunan input ialah -
const str = 'abc'; const arr = [[0, 1], [1, 2]];
maka outputnya hendaklah -
const output = 'cab';
kerana,
[0,1] bermakna bergerak ke kiri sebanyak 1. "abc" -> "bca"
[1,2] bermaksud bergerak ke kanan sebanyak 2. "bca" -> "teksi"
Kodnya ialah -
Demonstrasi langsung
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));
dalam konsol Outputnya ialah -
cab
Atas ialah kandungan terperinci Lakukan peralihan dalam rentetan dalam JavaScript. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!