每日leetcode-数组-541. 反转字符串 II

Posted LLLLgR

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了每日leetcode-数组-541. 反转字符串 II相关的知识,希望对你有一定的参考价值。

分类:字符串-字符串的反转

题目描述:

给定一个字符串 s 和一个整数 k,你需要对从字符串开头算起的每隔 2k 个字符的前 k 个字符进行反转。

如果剩余字符少于 k 个,则将剩余字符全部反转。
如果剩余字符小于 2k 但大于或等于 k 个,则反转前 k 个字符,其余字符保持原样。

class Solution:
    def reverseStr(self, s: str, k: int) -> str:
        a = list(s)

        for i in range(0,len(s)-1,2*k):
            a[i:i+k] = a[i:i+k][::-1]
        return "".join(a)
  • 时间复杂度:O(N),其中 N 是 s 的大小。我们建立一个辅助数组,用来翻转 s 的一半字符。
  • 空间复杂度:O(N)a 的大小。

以上是关于每日leetcode-数组-541. 反转字符串 II的主要内容,如果未能解决你的问题,请参考以下文章

Java算法 每日一题 编号541:反转字符串 II

Java算法 每日一题 编号541:反转字符串 II

LeetCode 541. 反转字符串 II / 701. 二叉搜索树中的插入操作 / 807. 保持城市天际线

leetcode541. 反转字符串Ⅱ(区间部分反转)

leetcode541

《LeetCode之每日一题》:129.反转字符串