[leetcode: Python]541. Reverse String II

来源:互联网 发布:林忆莲歌词知乎 编辑:程序博客网 时间:2024/06/08 05:49

Given a string and an integer k, you need to reverse the first k characters for every 2k characters counting from the start of the string. If there are less than k characters left, reverse all of them. If there are less than 2k but greater than or equal to k characters, then reverse the first k characters and left the other as original.
Example:

Input: s = "abcdefg", k = 2Output: "bacdfeg"

Restrictions:
The string consists of lower English letters only.
Length of the given string and k will in the range [1, 10000]

方法一:42ms

class Solution(object):    def reverseStr(self, s, k):        """        :type s: str        :type k: int        :rtype: str        """        res = ''        round = int(math.ceil(len(s)/(2.0*k)))        for i in range(round):            res += s[2*i*k:(2*i+1)*k][::-1]             res += s[(2*i + 1)*k:(2*i + 2)*k]        return res

方法二:38ms

class Solution(object):    def reverseStr(self, s, k):        res = ''        i = 0        while i < len(s):            res = res + s[i:i+k][::-1]            res = res + s[i+k:i+(k*2)]            i = i + (k * 2)        return res
原创粉丝点击