Kodowanie długości serii

Kompresja bezstratna: kodowanie RLE - Algorytmy: zakres rozszerzony (Python)

**Kompresja bezstratna** zmniejsza rozmiar danych tak, że da się je odtworzyć co do znaku. Najprostsza metoda, **RLE** (run-length encoding), zastępuje serię jednakowych znaków liczbą powtórzeń i znakiem: `AAAABBBCC` -> `4A3B2C`. Działa dobrze dla obrazów z dużymi jednolitymi plamami i słabo dla zwykłego tekstu.

def rle_encode(text):
    result = ""
    i = 0
    while i < len(text):
        j = i
        while j < len(text) and text[j] == text[i]:
            j += 1
        result += str(j - i) + text[i]
        i = j
    return result


print(rle_encode("AAAABBBCC"))
print(rle_encode("WWWWWWWWWWBWWWWWWWWWW"))

Ładowanie interaktywnego edytora... Jeśli się nie pojawi, włącz JavaScript.

Wszystkie lekcje kursu Algorytmy: zakres rozszerzony·Zaloguj się, aby zapisać postęp na koncie.