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

Python如何统计字符串中指定单词的最大连续出现次数

字符串指定单词最大连续出现次数实现方案

你现有代码的问题是直接使用str.count()统计单词总出现次数,没有判断匹配项是否连续,不符合需求。调整思路如下:

  • 对每个目标单词单独遍历所有匹配位置,记录上一次匹配的结束索引
  • 若当前匹配的起始索引刚好等于上一次匹配的结束索引,说明两次匹配连续,累计连续计数
  • 若不连续则重置当前连续计数,全程记录最大的连续计数即可

修改后的可运行代码如下:

import re

def maxKOccurrences(sequence, words):
    result = []
    for word in words:
        max_consec = 0
        current_consec = 0
        prev_end = -1
        # 遍历单词所有非重叠匹配的位置
        for match in re.finditer(re.escape(word), sequence):
            current_start = match.start()
            if current_start == prev_end:
                current_consec += 1
            else:
                current_consec = 1
            # 更新最大连续次数
            max_consec = max(max_consec, current_consec)
            # 保存本次匹配的结束位置
            prev_end = match.end()
        result.append(max_consec)
    return result

# 测试示例1
x = "ababcbabc"
y = ["ab", "babc", "bca"]
print(maxKOccurrences(x, y)) # 输出结果 [2, 2, 0]

# 测试示例2
x2 = "abrtfhg"
print(maxKOccurrences(x2, y)) # 输出结果 [1, 0, 0]

代码中使用re.escape()是为了避免目标单词包含正则特殊字符时匹配出错,符合通用场景需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 22:27:03