Учитывая строку, содержащую буквы алфавита в верхнем регистре (A-Z), сожмите строку, используя кодировку длины.Python

Программы на Python
Anonymous
Учитывая строку, содержащую буквы алфавита в верхнем регистре (A-Z), сожмите строку, используя кодировку длины.

Сообщение Anonymous »

Для получения строки, содержащей буквы алфавита в верхнем регистре (A-Z), сожмите ее, используя кодировку длины. Повторение символа необходимо заменить сохранением длины этого прогона.

Я пробовал следующие коды

Код: Выделить всё

#Code 1: Tried on my own

def encode(message):
list1=[]
for i in range (0,len(message)):
count = 1
while(i < len(message)-1 and message[i]==message[i+1]):
count+=1
i+=1
list1=str(count)+message[i]
return list1
encoded_message=encode("ABBBBCCCCCCCCAB")
print(encoded_message)

Input:AAAABBBBCCCCCCCC
Expected Output: 4A4B8C

#code 2:I tried this by looking at another code based on run-length encoding

def encode(message):
list1=[]
count=1
for i in range (1,len(message)):
if(message[i]==message[i-1]):
count+=1
else:
list1.append((count,list1[i-1]))
count=1
if i == len(messege) - 1 :
list1.append((count , data[i]))
return list1

encoded_message=encode("ABBBBCCCCCCCCAB")
print(encoded_message)
Ввод: AAAABBBBCCCCCCCC

Ожидаемый результат: 4A4B8C

Первый код дает вывод как 2B

Вернуться в «Python»