python-leetcode-541. 反转字符串 II

541. 反转字符串 II - 力扣(LeetCode)

可以使用 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"

代码解析:

  1. 将字符串转换为列表 以便进行原地修改(Python 字符串是不可变的)。
  2. 循环遍历 每 2k 个字符:
    • i2k 为步长,遍历字符串索引。
    • s[i:i + k] = reversed(s[i:i + k]) 反转前 k 个字符。
  3. 将列表转换回字符串 并返回结果。

这个方法的时间复杂度是 O(n),其中 n 是字符串的长度,因为我们仅遍历了一次字符串并进行了局部反转操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值