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

验证判断列表含连续两个3的代码正确性:我的实现vs讲师实现

判断列表中是否存在连续两个3的函数正确性分析

我想要编写一个函数,当输入列表中存在两个连续的3时返回True。我编写了如下代码,但不确定其正确性:

def has_33(my_list):
    i=0
    for j in my_list:
        if i==j:
            return True
        else:
            i=j
    return False

我的在线讲师提供了另一个使用索引的解决方案:

def has_33(nums):
    for i in range(0, len(nums)-1):
        if nums[i:i+2] == [3,3]:
            return True  
    
    return False

你的解决方案是否可行?

不可行。你的代码逻辑是判断列表中是否存在任意两个连续相等的元素,而非专门针对连续的3。比如输入[2,2],你的函数会返回True,但这不符合“只有连续3才返回True”的需求——代码没有限定比较的元素必须是3,只要前后元素相等就触发返回,完全偏离了原本的需求。

讲师的方案是否正确?

完全正确。讲师的代码通过遍历列表的每个有效位置(从0到len(nums)-2,确保能取到两个连续元素),每次截取当前位置和下一个位置的切片nums[i:i+2],判断是否等于[3,3]:

  • 一旦找到连续的3,立刻返回True;
  • 遍历完整个列表都没找到的话,返回False。

这个逻辑完全贴合需求,不管输入是空列表、单元素列表、无连续3的列表还是有连续3的列表,都能给出正确结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 07:05:00