You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在不使用reversed()和[::-1]的前提下实现任意字符串的拆分操作?

Python实现字符串反转(禁用reversed()与[::-1]切片)

基础实现方案(索引倒序遍历)

代码实现

def reverse_str(input_str: str) -> str:
    res = ""
    # 从字符串最后一位下标开始往前遍历
    for index in range(len(input_str) - 1, -1, -1):
        res += input_str[index]
    return res

验证用例

  • 普通字符串测试:输入"abcdefg",返回结果为"gfedcba"
  • 空字符串测试:输入"",返回结果为""
  • 含特殊字符/中文测试:输入"!@#123测试",返回结果为"试测321#@!"
  • 单字符测试:输入"a",返回结果为"a"

逻辑说明

该实现完全避开禁用的两种方法,仅通过原生的索引遍历和字符串拼接完成反转:

  1. 先获取输入字符串的长度,确定起始遍历下标为长度减1(字符串下标从0开始)
  2. 遍历的终止条件为下标等于-1(保证能取到下标为0的第一个字符),遍历步长设为-1,每次下标减1
  3. 每次遍历取出当前下标对应的字符,追加到结果字符串末尾,遍历结束后得到反转后的字符串

可选实现方案(栈结构实现)

如果不希望使用下标遍历,也可以通过栈的入栈出栈特性实现反转,同样符合要求:

def reverse_str_by_stack(input_str: str) -> str:
    stack = list(input_str)
    res = ""
    while stack:
        # 弹出列表最后一个元素,等价于栈顶出栈
        res += stack.pop()
    return res

内容的提问来源于stack exchange,提问作者Student

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 17:15:02