计算行中字符串中的重复字符数

2024-09-19 23:34:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我想检查一个字符串中的重复字符,直到下一个空格。

例如:
下面的字符串连续有4个O,我想以某种方式检测它。
myString = 'I contain foooour O's in a row without any space'

不管是什么字符,只要连续重复4次,没有空格

我怎样才能做到这一点?我的选择是什么


Tags: 字符串in方式anyspace字符rowwithout
3条回答

试试这个:

myString = "I contain foooour O's in a row without any space"

def count_repeat(some_string):
    counter = 1
    max_counter = 0
    tmp = some_string[0]
    for i in range(1, len(some_string)):
        if tmp == some_string[i] and some_string[i] != " ":
            counter += 1
        else:
            max_counter = counter if max_counter < counter else max_counter
            counter = 1
        tmp = some_string[i]
    return max_counter

print(count_repeat(myString))

输出

4
import string

myString = "I contain foooour O's in a row without any space"

alphabet_lowercase = list(string.ascii_lowercase)
alphabet_uppercase = list(string.ascii_uppercase)

for index in range(26):
    if alphabet_lowercase[index] * 4 in myString:
        print(f"Found {alphabet_lowercase[index]}")
    if alphabet_uppercase[index] * 4 in myString:
        print(f"Found {alphabet_uppercase[index]}")

上述代码将显示一行中重复4次的任何字符。它将打印重复的字符

一个通用的解决方案可能是将re.findall与模式(\S)\1{3,}一起使用:

myString = "I contain foooour O's in a row without any space"
matches = re.findall(r'((\S)\2{3,})', myString)
print(matches[0][0])

这张照片是:

oooo

相关问题 更多 >