簡體   English   中英

Python檢測字符串是否包含特定長度的子字符串

[英]Python detect if string contains specific length substring

我得到一個字符串,需要根據子字符串的長度找到其中的第一個子字符串,例如:給定字符串 'abaadddefggg' for length = 3 我應該得到 'ddd' 的輸出 for length = 2 我應該得到 ' aa' 等等有什么想法嗎?

Python 3.8+ 中使用itertools.groupby結合walrus 運算符的一種方法:

from itertools import groupby

string = 'abaadddefggg'

k = 3
res = next(s for _, group in groupby(string) if len(s := "".join(group)) == k)
print(res)

輸出

ddd

另一種通用方法:

from itertools import groupby


def find_substring(string, k):
    for _, group in groupby(string):
        s = "".join(group)
        if len(s) == k:
            return s


res = find_substring('abaadddefggg', 3)
print(res)

您可以遍歷字符串索引,並生成所有子字符串。 如果這些子字符串中的任何一個由單個字符組成,那么這就是您要查找的子字符串:

def sequence(s, length):
    for i in range(len(s) - length):
        candidate = s[i:i+length]
        if len(set(candidate)) == 1:
            return candidate

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM