[英]Python detect if string contains specific length substring of chars from specific set
[英]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.