• 每日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 的大小。
  • 相关阅读:
    Codeforces Round #249 (Div. 2) D. Special Grid 枚举
    图论二
    C语言中的atan和atan2(转)
    BestCoder Round #79 (div.2)
    数学
    LCA
    二分图
    动态规划
    线段树
    树状数组
  • 原文地址:https://www.cnblogs.com/LLLLgR/p/14923847.html
Copyright © 2020-2023  润新知