3 回答
TA贡献1856条经验 获得超17个赞
如果字母总是连续的,这将起作用:
wd = "stackoverflow"
lst = ["".join(wd[i:i+5]) for i in range(len(wd)-4)]
print(lst)
输出
['stack', 'tacko', 'ackov', 'ckove', 'kover', 'overf', 'verfl', 'erflo', 'rflow']
TA贡献2080条经验 获得超4个赞
我想你可以只使用一个简单的循环和一个大小为 5 的滑动窗口
word = "stackoverflow"
result=[]
for i in range(len(word)-5):
result.append(word[i:i+5])
print(result)
这是非常有效的,因为它在 O(n) 线性时间上运行
TA贡献1824条经验 获得超6个赞
因为正如我在 findall 文档字符串中看到的那样,它返回所有非重叠匹配项:
def findall(pattern, string, flags=0):
"""Return a list of all non-overlapping matches in the string.
If one or more capturing groups are present in the pattern, return
a list of groups; this will be a list of tuples if the pattern
has more than one group.
Empty matches are included in the result."""
return _compile(pattern, flags).findall(string)
查看主题中没有使用正则表达式的解决方案。
添加回答
举报