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

Python实现连续相同字符检测函数报索引越界,如何正确迭代?

双字母检测问题修复方案

原代码错误点

  • 索引范围错误:你使用range(len(word)+1)生成遍历下标,字符串下标取值范围是0 ~ 长度-1,要同时取i和i+1做对比时,i最大只能到长度-2,否则会触发下标越界报错。
  • 逻辑提前返回错误:第一次循环无论对比结果是否相等都会直接返回值,不会遍历后续字符,比如传入abb时,代码会因为前两个字符a和b不相等直接返回False,忽略后续的连续b,返回结果不符合预期。

正确实现

遍历范围调整为range(len(word)-1),仅当所有相邻字符都对比完成仍未找到连续相同字符时,再返回False:

def double_letters(word):
    for i in range(len(word)-1):
        if word[i] == word[i+1]:
            return True
    return False

验证用例

  • double_letters('hello') 返回 True
  • double_letters('Master') 返回 False,无索引报错
  • double_letters('nono') 返回 False
  • double_letters('a') 返回 False(单字符无相邻对,边界场景正常)
  • double_letters('') 返回 False(空字符串边界场景正常)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 18:15:01