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