反转字符串前缀 -LeetCode
3794. 反转字符串前缀 - Reverse String Prefix
🎯 问题描述(来源于LeetCode)
描述:
给定一个字符串 s 和一个整数 k,将字符串的前 k 个字符进行反转。其余字符保持原来的顺序。返回反转后的字符串。
说明:
1 <= s.length <= 1000 <= k <= s.length(根据常见实现推断,可自行验证)
示例:
- 示例 1:
1 | 输入: s = "abcd", k = 2 |
- 示例 2:
1 | 输入: s = "xyz", k = 3 |
💻 解题思路
思路:字符串切片拼接
算法步骤
- 将字符串
s分成两部分:前缀pre = s[:k](前 k 个字符)和后缀suf = s[k:](剩余字符)。 - 反转前缀:
pre[::-1]。 - 将反转后的前缀与后缀拼接并返回。
代码实现
1 | class Solution: |
📊 性能分析
- 时间复杂度:,其中 是字符串长度。
- 空间复杂度:,切片创建新字符串。
思考
你的代码简洁高效,但如果能注意变量命名的可读性(如将 od 改为 suf 表示后缀),代码会更清晰。
边界情况:由于 Python 切片特性,当 k = 0 时,s[:0] 为空字符串,s[0:] 为原字符串,结果正确;当 k >= len(s) 时,s[:k] 返回整个字符串,s[k:] 为空,结果也正确。无需额外判断。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 笺札!






