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

如何实现检测字符串是否存在相邻重复双字母的Python函数?

连续相邻相同字母判断函数修正方案

你的原有代码存在以下三处核心问题:

  • 语法错误:Python 字符串取单个字符的语法为string[索引值],你使用的string[index1, string_len]是多维数组的索引格式,运行会直接抛出TypeError
  • 逻辑错误:word1、word2仅在循环外赋值一次,循环中更新索引后没有重新读取对应位置的字符,对比的永远是初始错误值
  • 缺少兜底返回:如果字符串中不存在连续相同字母,函数没有返回值,会默认返回None不符合需求

最优实现方案

直接遍历字符串的相邻字符对即可,代码简洁易读:

def double_letters(string):
    # 只需遍历到倒数第二个字符,避免索引越界
    for i in range(len(string) - 1):
        if string[i] == string[i+1]:
            return True
    # 遍历完所有相邻对都无匹配返回False
    return False

执行print(double_letters("Error"))会返回True,完全符合预期。

基于你原有写法的修正版本

如果你希望保留原有的while循环逻辑,修正后代码如下:

def double_letters(string):
    string_len = len(string) - 1 
    index1 = 0  
    index2 = 1  

    while string_len > 0:
        # 每次循环更新索引后,重新读取当前位置的字符对比
        word1 = string[index1]
        word2 = string[index2]
        if word1 != word2:
            index1 += 1
            index2 += 1
            string_len -= 1    
        else:
            return True
    # 兜底返回无连续相同字符的情况
    return False

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 11:27:00