/
Allexandr
/
Getting-to-know-python
Обзор
Документация
Войти
/
Allexandr
/
Getting-to-know-python
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
Seminar5(HW)/Task4/Task4.py
39 строк
1 KB
AlexandrVodolazov
Add files via upload
19 янв 2023, 15:16
Не верифицирован
19 янв 2023, 15:16
70609b0
Код
Авторство
О чём код?
# Реализуйте RLE алгоритм: реализуйте модуль сжатия и восстановления данных. # Входные и выходные данные хранятся в отдельных текстовых файлах. # Пример: # На сжатие входные данные: # WWWWWWWWWWWWBWWWWWWWWWWWWBBBWWWWWWWWWWWWWWWWWWWWWWWWBWWWWWWWWWWWWWW # Выходные данные: # 12W1B12W3B24W1B14W #''' def coding(txt): count = 1 res = '' for i in range(len(txt)-1): if txt[i] == txt[i+1]: count += 1 else: res = res + str(count) + txt[i] count = 1 if count > 1 or (txt[len(txt)-2] != txt[-1]): res = res + str(count) + txt[-1] return res def decoding(txt): number = '' res = '' for i in range(len(txt)): if not txt[i].isalpha(): number += txt[i] else: res = res + txt[i] * int(number) number = '' return res s = input("Введите текст для кодировки: ") print(f"Текст после кодировки: {coding(s)}") print(f"Текст после дешифровки: {decoding(coding(s))}")