剑指 Offer 58 - II. 左旋转字符串

169 阅读1分钟

题目描述

字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。比如,输入字符串"abcdefg"和数字2,该函数将返回左旋转两位得到的结果"cdefgab"。

示例 1: 输入: s = "abcdefg", k = 2 输出: "cdefgab"

示例 2: 输入: s = "lrloseumgh", k = 6 输出: "umghlrlose"

解题思路1: Python库函数

使用Python的数组切片, 可以很简单的实现

示例代码1:

def reverseLeftWords(self, s: str, n: int) -> str:
    return s[n:] + s[0:n]

解题思路2: 分组遍历

以n为分界, 将字符串分为2组, 先遍历后边一组在遍历前边一组

示例代码2:

def reverseLeftWords(self, s: str, n: int) -> str:
    res = []
    for i in range(n, len(s)):
        res.append(s[i])
    for i in range(n):
        res.append(s[i])
    return "".join(res)