You need to enable JavaScript to run this app. Python计算最长无重复子串代码报错:输入aab返回值错误排查
优惠活动
大模型
产品
解决方案
定价
更多

Python计算最长无重复子串代码报错:输入aab返回值错误排查

代码逻辑问题分析
  • 重复字符处理逻辑错误:遇到重复字符时直接清空当前子串变量empty,且通过continue跳过了当前字符的拼接步骤,没有将触发重复的字符作为新子串的起始字符,导致新子串长度统计缺失首字符。
  • 遗漏末尾子串统计:循环遍历结束后,没有将最后一个正在拼接的无重复子串的长度加入统计列表,若最长无重复子串出现在字符串尾部时会丢失有效统计项。
  • 语法缩进错误:边界判断if len(s)==0:下方的return 0未正确缩进,运行时会直接触发语法报错。
调试修正方案

核心修正点如下:

  1. 移除重复判断分支中的continue语句,确保当前触发重复的字符可以被加入清空后的empty,作为新子串的起始
  2. 循环结束后主动将当前empty的长度追加到统计列表list1中,避免遗漏尾部子串的统计
  3. 修正边界判断的缩进错误,保证语法合规

修正后的可运行代码:

s = 'aab'

def longsubstring(s):
    if len(s) == 0:
        return 0
    list1 = []   
    empty = ''
    for i in s:
        if i in empty:
            list1.append(len(empty)) 
            empty = ''
        empty += i
    # 追加最后一段子串的长度
    list1.append(len(empty))
    return max(list1) 

print(longsubstring(s)) # 输出为2,符合预期
测试验证
  • 输入s = 'abcabcbb':输出3,符合预期
  • 输入s = 'aab':输出2,符合预期
  • 输入s = 'bbbbb':输出1,符合预期
  • 输入s = 'pwwkew':输出3,符合预期

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.16 06:15:03