在 JavaScript 中执行字符串内的移位
假设我们有一个包含小写英文字母的字符串str和一个数组arr,其中arr[i]=[direction,amount]-
方向可以是0(左移)或1(右移)。
amount是字符串s的位移量。
左移1表示删除s的第一个字符并将其附加到末尾。
类似地,右移1意味着删除s的最后一个字符并将其添加到开头。
我们需要编写一个JavaScript函数,它将字符串作为第一个参数,将包含移位数据的数组作为第二个参数。
该函数应该遍历数组并在字符串中执行必要的移位,最后返回新字符串。
例如-
如果输入字符串和数组是-
const str = 'abc'; const arr = [[0, 1], [1, 2]];
那么输出应该是-
const output = 'cab';
因为,
[0,1]表示左移1。“abc”->“bca”
[1,2]表示右移2.“bca”->“cab”
示例
此代码将是-
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));输出结果控制台中的输出将是-
cab