Дико стыдно, но я просто встал в тупик.
Прохожу курс Stepic по Python. И вот уже 5-ый день бьюсь над этой задачей. Десятки вариантов перепробовал. А не выходит. А дальше идти не могу по курсу, не хочу нерешенное оставлять позади.
Вот, собственно, задача:
Узнав, что ДНК не является случайной строкой, только что поступившие в Институт биоинформатики студенты группы информатиков предложили использовать алгоритм сжатия, который сжимает повторяющиеся символы в строке.
Кодирование осуществляется следующим образом:
s = 'aaaabbсaa' преобразуется в 'a4b2с1a2', то есть группы одинаковых символов исходной строки заменяются на этот символ и количество его повторений в этой позиции строки.
Напишите программу, которая считывает строку, кодирует её предложенным алгоритмом и выводит закодированную последовательность на стандартный вывод.
Sample Input 1:
aaaabbcaa
Sample Output 1:
a4b2c1a2
Sample Input 2:
abc
Sample Output 2:
a1b1c1
А вот на данный момент более-менее мое решение. Знаю, что надо сравнивать со следующим элементом строки, но все перерыл, нет ничего подобного, на мою самодеятельность PyCharm дает ошибки. Взгляните и просто подскажите пожалуйста, готовое решение не обязательно.
message = "aaaabbсaa"
cnt = 1
for i in message:
if i == message[1:-1]:
cnt += 1
print(i, end='')
else:
print(i, end='')
print(cnt, end='')
cnt = 1
Выводит вот это: a1a1a1a1b1b1с1a1a1