如何用Python实现字符串首尾交替取元素且不额外创建列表
字符串重排实现方案
原草稿伪代码问题
- 右指针初始值错误:原代码
j初始为1,实际应初始为len(str1)-1指向字符串最后一位 - 循环条件逻辑错误:原条件完全不成立,正确循环边界为左指针小于右指针
- 拼接逻辑错误:原代码直接覆盖结果变量,需要做累加拼接
核心实现思路
用双指针分别从字符串首尾向中间遍历,每次依次拼接左指针、右指针指向的字符,遍历结束后如果字符串长度为奇数,单独补充拼接中间的剩余字符。全程仅使用字符串累加,不创建额外列表,符合要求。
可运行Python代码
def rearrange_str(s): left = 0 right = len(s) - 1 res = "" while left < right: res += s[left] res += s[right] left += 1 right -= 1 # 处理奇数长度的中间剩余字符 if left == right: res += s[left] return res
测试验证
- 输入
abcdef,输出afbecd,符合预期 - 输入
abcde,输出aebdc,符合预期
内容的提问来源于stack exchange,提问作者abd
相关产品推荐
相关产品推荐

