Я написал что-то, что делает то, что я думаю, что вы ищете, но я думаю, что вы пропустите термин в конце, если я не сделал это неправильно.pattern = 'ABABC' text = 'ABBABACABCBAC'
def search(text, pattern):
slices = len(text) - len(pattern)
for i in range(0, slices + 1):
count = 0
text_to_compare = text[i:i + len(pattern)]
for j in range(len(pattern)):
count += 1
if pattern[j] == text_to_compare[j]:
continue
else:
break
print("{} -> {}".format(text_to_compare, count))
search(text, pattern)
Это выводит
ABBAB -> 3
BBABA -> 1
BABAC -> 1
ABACA -> 4
BACAB -> 1
ACABC -> 2
CABCB -> 1
ABCBA -> 3
BCBAC -> 1
Его можно адаптировать для общего счета, например:
def search(text, pattern):
total_count = 0
slices = len(text) - len(pattern)
for i in range(0, slices + 1):
count = 0
text_to_compare = text[i:i + len(pattern)]
for j in range(len(pattern)):
count += 1
total_count += 1
if pattern[j] == text_to_compare[j]:
continue
else:
break
print("{} -> {}".format(text_to_compare, count))
print("Total count: {}".format(total_count))
, который выдает то же, что и раньше, но также с:
Общее количество: 17
Это то, что вы ищете?Я могу объяснить, какие части вы не понимаете:)