Реализуйте RLE алгоритм: реализуйте модуль сжатия и восстановления данных.
Входные и выходные данные хранятся в отдельных текстовых файлах.
Входные данные генерируюся случайным образом и записывайются в файл, откуда уже экспортируются для обработки.
Решение сводится к двум методам.
- Первый метод шифрования/сжатия. Его принцип основывается на том, что при прохождении через цикл
for
с помощью функцииrange
сравниваются два ближайших символа. Если они одинаковы, то счетчикcount
увеличивается на 1. Если же они разные то в случае, если счетчик больше 1, к строкеdecodong
добавляется значение счетчика и значение предыдущего символа. Аcount
снова приравнивается 1. - Второй метод декодирования. Его принци п основывается на опеделении является ли символ цифрой. Если да то он добавляется к строке
count
. Если же нет, то к строкеdecoding
добавляется значение символа, умноженное на переведенное в число значениеcount
.
Для визуализации сжатия добавлена переменная, которая считает степень сжатия и выводит ее в консоль в процентах.