Description
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.
Note
- The string consists of lower English letters only.
- Length of the given string and k will in the range [1, 10000]
Example
Input: s = “abcdefg”, k = 2
Output: “bacdfeg”
Code
class Solution(object):
def reverseStr(self, s, k):
"""
:type s: str
:type k: int
:rtype: str
"""
s_len = len(s)
ans = ""
for i in range(0, s_len, 2 * k):
if i == 0:
ans += s[i+k-1::-1]
else:
ans += s[i+k-1:i-1:-1]
ans += s[i+k:i+2*k]
return ans