Codificación run-length en Python
Run-length encoding: el esquema de compresión más simple que existe.
def codificar(texto):
if not texto:
return []
rachas = [[texto[0], 1]]
for ch in texto[1:]:
if ch == rachas[-1][0]:
rachas[-1][1] += 1
else:
rachas.append([ch, 1])
return [(ch, conteo) for ch, conteo in rachas]
Cómo funciona
- Inicia una corrida con el primer carácter.
- Las repeticiones extienden la corrida actual; un carácter nuevo inicia otra.
- Devuelve las corridas como pares
(character, conteo).
Palabras clave y builtins usados aquí
defelseforifreturn
El intento, en números
- Líneas
- 10
- Caracteres a escribir
- 210
- Tokens
- 83
- Ritmo de tres estrellas
- 100 tpm
Al ritmo de tres estrellas de 100 tokens por minuto, este intento toma unos 50 segundos.
Paso 4 de 5 en Algoritmos; paso 54 de 72 en Fundamentos del lenguaje.