python--剑指offer--简单--58 - II. 左旋转字符串

python--剑指offer--简单--58 - II. 左旋转字符串_第1张图片

python--剑指offer--简单--58 - II. 左旋转字符串_第2张图片
python--剑指offer--简单--58 - II. 左旋转字符串_第3张图片
代码

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

python--剑指offer--简单--58 - II. 左旋转字符串_第4张图片
python--剑指offer--简单--58 - II. 左旋转字符串_第5张图片
代码

class Solution:
    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)

在这里插入图片描述

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

python--剑指offer--简单--58 - II. 左旋转字符串_第6张图片
python--剑指offer--简单--58 - II. 左旋转字符串_第7张图片
代码

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

在这里插入图片描述

class Solution:
    def reverseLeftWords(self, s: str, n: int) -> str:
        res = ""
        for i in range(n, n + len(s)):
            res += s[i % len(s)]
        return res

python--剑指offer--简单--58 - II. 左旋转字符串_第8张图片
python--剑指offer--简单--58 - II. 左旋转字符串_第9张图片
在这里插入图片描述

s = "1" * 10000000

在这里插入图片描述

# 运行时间: 0.01 秒
def func1(s):
    cut = len(s) // 3
    return s[:cut] + s[cut:]

在这里插入图片描述

# 运行时间: 1.86 秒
def func2(s):
    res = []
    for i in range(len(s)):
        res.append(s[i])  # 仅需在列表尾部添加元素
    return ''.join(res)

在这里插入图片描述

# 运行时间: 6.31 秒
def func3(s):
    res = ""
    for i in range(len(s)):
        res += s[i]  # 每次拼接都需要新建一个字符串
    return res

你可能感兴趣的:(python,#,剑指offer--python,python,leetcode,简单,左旋转字符串)