繁体   English   中英

连续计算字符串中的重复字符 Python

[英]Counting repeated characters in a string in a row Python

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

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

它是什么字符并不重要,只要它连续重复 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

尝试这个:

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 次的字符。 它将打印重复的字符。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM