/
ilya.petrash
/
SimplePyScripts
Обзор
Документация
Войти
/
ilya.petrash
/
SimplePyScripts
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
RLE_encode.py
36 строк
836 B
gil9red
Refactoring. Using black code style
18 июн 2023, 16:53
18 июн 2023, 16:53
6b57b11
Код
Авторство
О чём код?
#!/usr/bin/env python3 # -*- coding: utf-8 -*- __author__ = "ipetrash" # SOURCE: https://ru.wikipedia.org/wiki/Кодирование_длин_серий # SOURCE: https://en.wikipedia.org/wiki/Run-length_encoding import itertools def compress(text): """ Функция для сжатия текста, с повторяющимися последовательностями символов aaaa -> 4a aaaabbbbb -> 4a5b aabcDDfaaaa -> 2abc2Df4a """ chars = list() for char, same in itertools.groupby(text): count = len(tuple(same)) # number of repetitions chars.append(char if count == 1 else str(count) + char) return "".join(chars) if __name__ == "__main__": print(compress("aaaa")) print(compress("aaaabbbbb")) print(compress("aabcDDfaaaa"))