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

列表最后唯一字符串检测代码的正确性验证及问题排查请求

列表最后唯一字符串检测代码的正确性验证及问题排查请求

最近我在CodeSignal上刷题巩固编程知识,碰到了这么一道题目:

假设你有一个单词列表,比如 ['apple', 'banana', 'apple', 'mango', 'banana'],每个单词可以重复任意次数。把这个列表想象成太空水果工厂的传送带,你的任务是找出传送带上最后一个不重复的水果——也就是没有出现过第二次的那个。如果所有水果都重复出现过,那就没有唯一水果,函数应该返回空字符串 ''。

函数的输入是一个字符串列表(传送带的水果),字符串可以是任意单词,不一定是水果名,列表长度也没有限制,甚至可能是空列表(空传送带的情况)。输出需要返回列表中最后一个唯一的字符串,如果没有则返回空字符串。

解题要求使用集合,因为集合的成员检测效率很高,适合跟踪已见过的元素和重复元素。

我给出的解决方案如下:

def find_unique_string(words):
    last_uniq = ''
    seen = set()
    for w in words:
        if last_uniq == w:
           last_uniq = ''
        if w not in seen:
           last_uniq = w
        seen.add(w)
    return last_uniq

我自己测试了几个用例,结果都符合预期:

print(find_unique_string(['apple', 'banana', 'apple', 'mango', 'banana']))  # 预期输出: 'mango'
print(find_unique_string(['hello', 'world', 'hello']))  # 预期输出: 'world'
print(find_unique_string(['hello', 'world', 'hello', 'world']))  # 预期输出: ''
print(find_unique_string([]))  # 预期输出: ''
print(find_unique_string(['apple', 'banana', 'apple', 'kiwi', 'banana', 'kiwi'])) # 预期输出: ''

但CodeSignal的AI却不接受我的代码,判定它不正确,又不给出发错误的测试用例。

现在我想请教几个问题:

  • 到底是我的代码正确,还是CodeSignal的AI判定有误?
  • 如果我的代码是正确的,我该怎么证明给CodeSignal的AI看,从而通过测试进入下一题?
  • 如果AI的判定是对的,能不能提供一个能让我代码出错的测试用例,指出我的代码问题所在?

注意:

我不需要那种使用两个集合(一个存已见过元素、一个存重复元素)的解决方案——我猜那是AI期望的写法,但我只想确认自己的代码是否正确,如果正确该如何证明,如果错误需要对应的测试用例来验证。

备注:内容来源于stack exchange,提问作者mans

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.14 18:04:40