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

统计字符串中子串出现次数的Python代码存在什么问题?

你找到的这段代码本身逻辑存在错误,你观察到的问题正是它无法正常运行的核心原因:

  • 外层循环固定i之后,内层循环始终拿同一个string[i]和子串的每一位sub_string[j]比较,只有子串所有字符完全一致的极端场景下,才能让j累加到等于子串长度,触发计数增加,其他情况完全无法得到正确结果。

如果要实现统计重叠子串出现次数的需求,可以参考下面的正确实现:

string = input("Enter the string: ")
sub_string = input("Enter the substring: ")
count = 0
sub_length = len(sub_string)
str_length = len(string)

# 遍历主串所有合法的起始匹配位置
for i in range(str_length - sub_length + 1):
    is_match = True
    # 从当前起始位开始逐位匹配子串
    for j in range(sub_length):
        if string[i+j] != sub_string[j]:
            is_match = False
            break
    if is_match:
        count += 1

print(count)

你可以用测试用例验证:主串输入"ABABA",子串输入"ABA",上述代码会返回2(重叠匹配的正确结果),而Python内置的count方法只会返回1。

代码输出放在此处

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 11:36:05