Сжатие повторяющихся символов

Узнав, что ДНК не является случайной строкой, только что поступившие в Институт биоинформатики студенты группы информатиков предложили использовать алгоритм сжатия, который сжимает повторяющиеся символы в строке.

Кодирование осуществляется следующим образом:
s = ‘aaaabbсaa’ преобразуется в ‘a4b2с1a2’, то есть группы одинаковых символов исходной строки заменяются на этот символ и количество его повторений в этой позиции строки.

Напишите программу, которая считывает строку, кодирует её предложенным алгоритмом и выводит закодированную последовательность на стандартный вывод. Кодирование должно учитывать регистр символов.

s = input()
cnt = 0         #счетчик повторений 
shifr = ''     #итоговый результат
for i in range(len(s)):
    sim = s[i]
    cnt += 1
    if i == len(s) - 1: 
        shifr = shifr + s[i] + str(cnt)
        break
    if s[i] != s[i+1]:
        shifr = shifr + s[i] + str(cnt)
        cnt = 0
print (shifr)




Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: