剑指 Offer 58 - II. 左旋转字符串
方法1
转换成数组,然后利用指针交换元素
var reverseLeftWords = function(s, n) {
// 转换成数组的形式,因为字符串是不可变的
s = s.split('')
// 左旋转之后的新长度
let newLength = s.length+n
// 设置双指针
let i=0, j=s.length
// 进行替换
for(let i=0;i<n;i++){
// 注意是两两交换
[s[j],s[i]] = [s[i],s[j]]
j++
}
return s.join('')
};
方法二
利用str.slice(),截断字符串然后进行拼接
var reverseLeftWords = function(s, n) {
return s.slice(n) + s.slice(0,n);
};
方法三
转换成数组,利用数组的方法,从数组的头部弹出n个元素,插入到数组的尾部
var reverseLeftWords = function (s, n) {
var i = 0;
var arr = [...s];
while(i<n){
arr.push(arr.shift());
i++;
}
return arr.join('')
};