You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在Python 3中统计字符串中连续重复字母的实例数?

统计连续多个'O'的组数

没问题,我来帮你搞定这个需求——统计字符串里连续出现至少两个'O'的片段数量(也就是你说的“连续多个'O'的次数”)。下面给你两种实现思路和代码示例:

方法一:正则表达式(简洁高效)

正则表达式可以快速匹配所有连续2个及以上的'O',直接统计匹配结果的数量就行,代码非常简洁:

import re

def count_multiple_o_groups(s):
    # 匹配连续2个或更多的'O'
    matches = re.findall(r'O{2,}', s)
    return len(matches)

# 测试示例
test_str = "EOOOEOEE"
print(count_multiple_o_groups(test_str))  # 输出: 1

# 再试几个例子
print(count_multiple_o_groups("OOEOO"))  # 输出: 2
print(count_multiple_o_groups("OEOEO"))  # 输出: 0
print(count_multiple_o_groups("OOOO"))   # 输出: 1

解释:

  • r'O{2,}' 是正则表达式,意思是匹配连续出现2次或更多次的'O'
  • re.findall() 会返回所有符合条件的片段组成的列表,列表的长度就是我们要的组数。

方法二:手动遍历(适合理解底层逻辑)

如果不想用正则,也可以手动遍历字符串,跟踪当前是否处于连续'O'的片段中,同时记录片段长度,最后统计符合条件的组数:

def count_multiple_o_groups(s):
    count = 0
    current_o_length = 0
    
    for char in s:
        if char == 'O':
            current_o_length += 1
        else:
            # 遇到非'O',检查之前的连续O长度是否≥2
            if current_o_length >= 2:
                count += 1
            current_o_length = 0  # 重置计数
    
    # 处理字符串结尾是连续'O'的情况
    if current_o_length >= 2:
        count += 1
    
    return count

# 测试示例
test_str = "EOOOEOEE"
print(count_multiple_o_groups(test_str))  # 输出: 1

解释:

  1. 初始化count(结果计数)和current_o_length(当前连续O的长度);
  2. 遍历每个字符:
    • 如果是'O',就增加当前连续长度;
    • 如果不是'O',就检查之前的连续O长度是否≥2,是的话计数加1,然后重置当前长度;
  3. 遍历结束后,还要检查最后一段是否是连续≥2的'O',避免遗漏。

两种方法都能完美解决你的问题,你可以根据自己的需求选择~

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

火山引擎 最新活动