【算法08天:Day8】第四章字符串 LeetCode 剑指Offer 左旋转字符串(58-II)

36 阅读1分钟

题目五:

image.png

解法一:(局部反转+全局反转)

解题思路:

1. 先反转0到k-1的字符串
2. 再反转k到s.length-1的字符串
3. 整体反转

image.png

解法二:(双倍字符串+截取)

解题思路:

  • 先将字符串重复一次,拼接在结尾
  • 计算n = k % len
  • 然后再从双倍字符串的n处截取,截取len个即可

image.png

var reverseLeftWords = function(s, n) {
    const double = `${s}${s}`
    return double.slice(n, n + s.length)
};

解法三:(库函数)

var reverseLeftWords = function(s, n) {
    return s.slice(n, s.length) +s.slice(0, n)
};