方法一: 时间复杂度: 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
};