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

CodeSignal隐藏测试无法通过:首个非重复字符Python解法问题

问题原因分析
  • 现有解法逻辑正确性无问题,小数据量场景下可正常返回结果,无法通过隐藏用例的核心原因为时间复杂度过高:
    • 每次调用s.count(i)都会全量遍历一次字符串统计字符出现次数,单次调用时间复杂度为O(n)
    • 叠加外层的字符串遍历,整体时间复杂度达到O(n²),当隐藏测试用例为长度过万的长字符串时,会触发超时判定,导致用例执行失败
优化方案

采用两次遍历+哈希表统计的方案,将整体时间复杂度降到O(n),可适配所有长度的测试用例,参考实现如下:

def firstNotRepeatingCharacter(s):
    char_count = {}
    # 首次遍历统计所有字符出现次数
    for c in s:
        char_count[c] = char_count.get(c, 0) + 1
    # 二次遍历找第一个出现次数为1的字符
    for c in s:
        if char_count[c] == 1:
            return c
    return "_"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 12:36:03