【问题标题】:what is the best algorithm to get repetition of k length substring in a string in the shortest possible time? [duplicate]在尽可能短的时间内在字符串中重复 k 长度子字符串的最佳算法是什么? [复制]
【发布时间】:2018-06-17 12:49:14
【问题描述】:

是否有任何算法可以获取字符串中重复重叠子字符串的数量?这个问题类似于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

【问题讨论】:

  • substr = [ string[i:i+2] for i in range(len(string)-1)] ?
  • 显示你尝试了什么。
  • 除非你输入lower(),否则它不会将大写H更改为更低的h ...
  • @PatrickArtner 你应该发布那个答案,我不认为这个答案有欺骗性,特别是因为它与 k 长度的子字符串相当普遍,而且:重叠。
  • @Patrick Artner 你太真实了。

标签: python string algorithm sequence dynamic-programming


【解决方案1】:

您可以使用列表理解返回所有 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']

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-28
    • 2023-03-10
    • 2015-12-13
    • 1970-01-01
    • 2021-07-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多