Я работаю в PSET6 для CS50 на edx, это называется DNA https://cs50.harvard.edu/x/2020/psets/6/dna/
И видео, чтобы объяснить проблему в деталях: https://youtu.be/j84b_EgntcQ
Ниже приведен код, в котором мне нужна помощь с
. Я хочу посчитать, сколько раз следующий набор символов повторяется последовательно «AGAT C», «AATG», и «TAT C»
, что означает, что если «AGAT C» появился один раз, я игнорирую его, однако, если он повторяется спина к спине, поэтому я считаю их и т. д., затем возвращаю максимальное число, в которое он был посчитан
Вот текст, который вы можете редактировать для тестирования
этого кода, не дает необходимых результатов, поскольку счетчик группирует каждую букву, так что есть способ, которым я могу получить приведенный ниже результат
# code from https://www.journaldev.com/23666/python-string-find
def find_all_indexes(input_str, search_str):
l1 = []
length = len(input_str)
index = 0
while index < length:
i = input_str.find(search_str, index)
if i == -1:
return l1
l1.append(i)
index = i + 1
return l1
s = 'AAGAGATCAGATCAGATCAGATCAGGTGAGTTAAATAGAAGATCAGATCAGATCAGATCAGATCATAGGTTAAAAATGAATGAATGAATGAATGATTAAAGGAGATCAGATCAGATCAGATCTATCTATCTATCTATCAATGAATGAATGTATCTATCTATCAGAAAATGAATGAATGAAGAGTATATCTATCAATAGTTAAAGAGTAAGATATTGAATTGAAAATATTGTTGGGGAAAGGAGGGATAGAAGG'
print(find_all_indexes(s, 'AGATC'))
# printed values: [3, 8, 13, 18, 39, 44, 49, 54, 59, 102, 107, 112, 117]
, так что теперь я могу найти местоположение, однако я не знаю, как подсчитывать каждое из последовательных
, например
местоположения 3, 8, 13, 39, 44, 54 считаются 6
, затем местоположения 102, 107, 112 , 117 считаются 4
, поэтому наибольшее число составляет 6
, тогда мне нужно получить эти 6, пожалуйста, что является максимальным повторением этой строки