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

递归查找列表中最长字符串 代码错误修复与实现求助

recursiveLongestString 递归函数错误修复方案

原有代码核心错误

  • 比较对象错误:递归调用得到的smaller已经是lst[1:]子列表的最长字符串,不需要比较lst[0]和lst[1],应当比较lst[0]和smaller的长度
  • 返回值错误:不需要拼接两个字符串,只需返回长度更长的字符串即可

修正后代码

def recursiveLongestString(lst):
    if len(lst) == 1:
        return lst[0]
    # 递归获取剩余子列表的最长字符串
    sub_longest = recursiveLongestString(lst[1:])
    # 比较当前第一个元素和子列表最长字符串的长度,返回更长的那个
    if len(lst[0]) > len(sub_longest):
        return lst[0]
    else:
        return sub_longest

实现逻辑说明

  1. 递归终止条件:当列表长度为1时,直接返回唯一元素,它就是当前列表的最长字符串
  2. 递归递推逻辑:
    • 先递归求解去掉第一个元素后,剩余子列表的最长字符串sub_longest
    • 比较当前第一个元素和sub_longest的长度,返回长度更大的字符串
  3. 符合题目要求:没有使用循环、内置max函数,纯递归实现

测试验证

  • 输入recursiveLongestString(["a", "bb", "ccc"]),返回结果为"ccc",符合预期
  • 输入recursiveLongestString(["hi", "its", "fantastic", "here"]),返回结果为"fantastic",符合预期

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 19:06:05