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

Python字符串分段去重代码适配长输入的问题修复咨询

代码修改方案

原代码问题分析

  • 分段长度计算逻辑错误:使用int(len(s)/i)先做浮点数除法再转整数,当输入字符串长度极大时,浮点数精度不足会导致计算出的分段长度偏移,最终分段结果不符合预期
  • 去重逻辑效率极低:使用列表做存在性判断,单段去重的时间复杂度为O(n²),长输入场景下会出现严重的性能问题甚至运行超时
  • 变量命名不规范:内外层循环变量重名,存在隐性逻辑风险

修改后代码

s = input().strip()
split_count = int(input().strip())
# 整数除法计算单段长度,完全避免浮点数精度问题
seg_len = len(s) // split_count
res = []

for start in range(0, len(s), seg_len):
    current_seg = s[start:start+seg_len]
    seen = set()
    dedup_seg = []
    # 集合做存在性判断,时间复杂度降到O(n)
    for char in current_seg:
        if char not in seen:
            seen.add(char)
            dedup_seg.append(char)
    res.append(''.join(dedup_seg))

for output_line in res:
    print(output_line)

适配长输入的核心优化点

  • 替换浮点数除法为Python原生整数除法//,无论字符串长度多大都能准确计算分段长度
  • 引入集合辅助去重,保留顺序的同时将去重时间复杂度从O(n²)优化为O(n),长文本处理效率提升数十倍
  • 规范变量命名,消除循环变量重名的隐性问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 18:57:01