方法一: 时间复杂度: O(1) 空间复杂度: O(1) 主要思想:算出字符串需要偏移的长度,然后利用字符串的slice方法拼接返回。
{
if(str===null) return '';
let l=str.length;
let offset=n>l?n%l:n;
let ans=str.slice(offset,str.length)+str.slice(0,offset);
return ans;
}
module.exports = {
LeftRotateString : LeftRotateString
};
方法二: 时间复杂度: O(N) N为移动次数 空间复杂度: O(1)需要一个跟原数组等长的临时数组 主要思想:将字符串转换为数组,每次从头移除元素添加到临时数组中,如果数组为空,则将临时数组赋值给原数组,临时数组为空,直至到达目的移动次数。
function LeftRotateString(str, n)
{
if(str===null) return '';
let arr=str.split('');
let temp=new Array();
while(n>0){
if(arr.length){
temp.push(arr.shift());
n--;
}
else{
arr=temp;
temp=[];
}
}
return (arr.join(''))+temp.join('');
}
module.exports = {
LeftRotateString : LeftRotateString
};