我得到一個字串,需要根據子字串的長度找到其中的第一個子字串,例如:給定字串 'abaadddefggg' for length = 3 我應該得到 'ddd' 的輸出 for length = 2 我應該得到 ' aa' 等等有什么想法嗎?
uj5u.com熱心網友回復:
您可以遍歷字串索引,并生成所有子字串。如果這些子字串中的任何一個由單個字符組成,那么這就是您要查找的子字串:
def sequence(s, length):
for i in range(len(s) - length):
candidate = s[i:i length]
if len(set(candidate)) == 1:
return candidate
uj5u.com熱心網友回復:
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)
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/346736.html
