python - 在尽可能短的时间内重复字符串中 k 长度子字符串的最佳算法是什么?

标签 python string algorithm sequence dynamic-programming

<分区>

是否有任何算法可以获取字符串中重复重叠子串的数量?这个问题类似于Splitting a Python list into a list of overlapping chunks ,但在我的例子中,更改的元素是每个子字符串的第一个和最后一个元素! 例如当:

string = "HelloWorld"
k = 4

然后:

subString = ["Hell","ello","lloW","loWo","oWor","Worl","orld"]

我试过这个:

i = 0
while len(string[i+4:])>=4:
    i+=1
print i

最佳答案

您可以使用列表推导式返回所有 k 长度的字符串切片。

def substrings(s, k=2):
    return [s[i:i+k] for i in range(len(s) - k + 1)]

s = "Hello"

print(substrings(s, k=2)) # ['He', 'el', 'll', 'lo']
print(substrings(s, k=3)) # ['Hel', 'ell', 'llo']

关于python - 在尽可能短的时间内重复字符串中 k 长度子字符串的最佳算法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50896837/

相关文章:

python - Django 模型形式 - 多个模型

java - 在文本文件中查找特定单词并对其进行计数

performance - 如何在资源不足的设备上测试算法性能?

python - 如何动态地制作特定数量的功能?

python - 从数据 block 笔记本运行时,tensoflow 数据验证 visualize_statistics() 没有显示 html 网页

python - 将 Python 对象传递给 C 然后再返回

c# - C# (.NET) 中的 string.Length 是即时变量吗?

java - 我不应该在 Java 中执行 `String s = new String("一个新字符串");`,即使有自动字符串实习?

algorithm - RSA公共(public)指数也在解密消息

arrays - 规范化数组元素的算法