Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Задание 6. Сжатие

Игорь Малышенко Ученик (141), на голосовании 3 месяца назад
Что нужно сделать

Из-за того, что объём данных увеличился, понадобилось сжать эти данные, но так, чтобы не потерять важную информацию. Для этого было придумано специальное кодирование: s = 'aaaabbсaa' преобразуется в 'a4b2с1a2'. То есть группы одинаковых символов исходной строки заменяются на эти символы и количество их повторений в строке.

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

Пример

Введите строку: aaAAbbсaaaA.

Закодированная строка: a2A2b2с1a3A1.
Голосование за лучший ответ
Factator Мастер (2410) 4 месяца назад
 def encode_string(s): 
if not s:
return ""

encoded = ""
prev_char = s[0]
count = 1
for i in range(1, len(s)):
if s[i] == prev_char:
count += 1
else:
encoded += prev_char + str(count)
prev_char = s[i]
count = 1

encoded += prev_char + str(count) # Добавляем последний символ и его количество
return encoded

input_string = input("Введите строку: ")
encoded_string = encode_string(input_string)
print("Закодированная строка:", encoded_string)
Игорь МалышенкоУченик (141) 4 месяца назад
Супер всё срослось. Спасибо большое!!!
Похожие вопросы