可以使用 Python 来实现这个功能,以下是代码实现:
def reverseStr(s: str, k: int) -> str:
s = list(s)
for i in range(0, len(s), 2 * k):
s[i:i + k] = reversed(s[i:i + k])
return "".join(s)
# 测试
s = "abcdefg"
k = 2
print(reverseStr(s, k)) # 输出 "bacdfeg"
代码解析:
- 将字符串转换为列表 以便进行原地修改(Python 字符串是不可变的)。
- 循环遍历 每 2k 个字符:
i
以2k
为步长,遍历字符串索引。s[i:i + k] = reversed(s[i:i + k])
反转前 k 个字符。
- 将列表转换回字符串 并返回结果。
这个方法的时间复杂度是 O(n),其中 n
是字符串的长度,因为我们仅遍历了一次字符串并进行了局部反转操作。