Каков наилучший алгоритм для получения повторения подстроки длины k в строке в кратчайшие сроки? [Дубликат]

1

Есть ли какой-либо алгоритм для получения числа повторяющихся подстрок перекрытия в строке? Этот вопрос похож на разделение списка Python на список перекрывающихся кусков, но в моем случае измененные элементы - это первый и последний элементы каждой подстроки! например, когда:

string = "HelloWorld"
k = 4

затем:

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

я попробовал это:

i = 0
while len(string[i+4:])>=4:
    i+=1
print i
Теги:
string
algorithm
dynamic-programming
sequence

1 ответ

2

Вы можете вернуть все кусочки длины 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']

Ещё вопросы

Сообщество Overcoder
Наверх
Меню