首页 > 解决方案 > 检测字符串中的火焰

问题描述

我正在寻找一种计算多个连续字符并计算所有用大写字母书写的单词的算法。

我想要的输出是,对于每个用大写字母写的单词,计数器都会增加 1,并且对于每个顺序使用的字符,计数器会再次增加 1

例子:

str = "来吧,伙计!!!"

计数器 = 4

说明:COME +1,ON +1,DUDE +1,!!!+1

关于如何实现这个特定算法的任何想法?

太感谢了!

标签: pythonpython-3.x

解决方案


正则表达式是你的朋友。

import re

test = "COME ON DUDE!!!"
count = len(re.findall('([A-Z]{2,})|(?P<r>\S)(?P=r){2,}', test))

当然,您应该查看.findall()带有更多测试字符串的输出,以确保它实际上在计算您想要的结果。(这就是为什么我包括一个额外的捕获组。)


推荐阅读