Código em C++: Codificação Run-length

Este exemplo implementa a idéia básica da codificação run-length (Wikipédia e Wikipedia). Basicamente, este algoritmo pretende encurtar sequências (isto é, representar uma sequência com menos caracteres do que ela possui inicialmente) procurando padrões. Por exemplo, a sequência


wwwhhhggfffddddgbbbbb

pode ser representada como

{w, 3} {h, 3} {g, 2} {f, 3} {d, 4} {g, 1} {b, 5}

Ou seja, a sequência wwwhhhggfffddddgbbbbb pode ser representada com três letras w, depois três letras h, depois duas letras g, e assim por diante. Dependendo da sequência de entrada, a sequência de saída poderá possuir menos caracteres do que a de entrada. Esta representação é ingênua, pois ainda existem uma série de considerações a serem feitas.

O código abaixo implementa a codificação run-length.