簡體   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