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.