Узнав, что ДНК не является случайной строкой, только что поступившие в Институт биоинформатики студенты группы информатиков предложили использовать алгоритм сжатия, который сжимает повторяющиеся символы в строке.
Кодирование осуществляется следующим образом:
s = 'aaaabbсaa' преобразуется в 'a4b2с1a2', то есть группы одинаковых символов исходной строки заменяются на этот символ и количество его повторений в этой позиции строки.
s = 'aaaabbсaa' преобразуется в 'a4b2с1a2', то есть группы одинаковых символов исходной строки заменяются на этот символ и количество его повторений в этой позиции строки.
Напишите программу, которая считывает строку, кодирует её предложенным алгоритмом и выводит закодированную последовательность на стандартный вывод. Кодирование должно учитывать регистр символов.
Ответ:
z = input()
m = 1
x = 1
j = z[x:x+1]
for i in z:
if i in j:
m += 1
else:
print(i, end='')
print(m, end='')
m = 1
x += 1
j = z[x:x+1]
....интересная манипуляция со срезами.....
ОтветитьУдалитьa=input()
ОтветитьУдалитьs=1
a=a+'0'
for j in range (0,len(a)-1):
if a[j]==a[j+1]:
s+=1
else:
print((a[j]+str(s)),end='')
s=1
Я не понимаю в 5 и 6 строчке появляется i, откуда программа понимает что это за i?
ОтветитьУдалитьЭто некая переменная, которая подставляется под значения z, в теории там может быть любая другая переменная, j g n, она нужна, чтобы задать цикл
Удалить