541. 反转字符串 II¶
难度:简单
题目¶
给定一个字符串 s
和一个整数 k
,从字符串开头算起,每计数至 2k
个字符,就反转这 2k
字符中的前 k
个字符。
- 如果剩余字符少于
k
个,则将剩余字符全部反转。 - 如果剩余字符小于
2k
但大于或等于k
个,则反转前k
个字符,其余字符保持原样。
示例 1:
输入:
s = "abcdefg", k = 2
输出:
"bacdfeg"
示例 2:
输入:
s = "abcd", k = 2
输出:
"bacd"
提示:
1 <= s.length <= 10^4
s
仅由小写英文组成1 <= k <= 10^4
题解¶
以2k
为单位进行遍历,反转每个子字符串的前k
个字符。
class Solution:
def reverseStr(self, s: str, k: int) -> str:
result = ''
for i in range(0, len(s), 2 * k):
left, right = s[i: i + k], s[i + k: i + 2 * k]
result += left[::-1] + right
return result