LeetCode 541 反转字符串 II

541. 反转字符串 II

难度简单219收藏分享切换为英文接收动态反馈

给定一个字符串 s 和一个整数 k,从字符串开头算起,每计数至 2k 个字符,就反转这 2k 字符中的前 k 个字符。

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

示例 1:

输入:s = "abcdefg", k = 2
输出:"bacdfeg"

示例 2:

输入:s = "abcd", k = 2
输出:"bacd"

提示:

  • 1 <= s.length <= 104
  • s 仅由小写英文组成
  • 1 <= k <= 104
class Solution(object):
    def reverseStr(self, s, k):
        """
        :type s: str
        :type k: int
        :rtype: str
        """
        lst = list(s)
        for i in range(0, len(s), 2*k):  # 每次移动2*k区间
            tmp = lst[i:(i+k)]
            lst[i:(i+k)] = tmp[::-1]
        
        return "".join(lst)

LeetCode 541 反转字符串 II_第1张图片

 

你可能感兴趣的:(LeetCode,leetcode,541,反转字符串,II)