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

自定义dup函数无法返回无重复字符字符串,返回结果为原字符串

问题原因分析

你的代码问题出在return语句的缩进位置:

  • return(str1)被放在了for循环的内部,和if语句同级。这意味着循环只执行第一次迭代就直接返回结果了。比如原字符串是"abcabc",第一次循环处理字符'a',添加到str1后立刻返回"a",根本没机会处理后面的字符。你说得到原字符串可能是描述有误,实际应该是只返回了第一个字符,或者你实际运行的代码缩进和贴出来的不一致。
修正后的代码

把return语句移到for循环外面,确保遍历完所有字符后再返回结果,同时建议不要用str作为变量名(它是Python内置的字符串类型,容易引发冲突):

def dup(s):
    str1 = ""
    for ch in s:
        if ch not in str1:
            print(ch)
            str1 = str1 + ch
    return str1

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 04:34:54