typestar

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

  1. Inicia una corrida con el primer carácter.
  2. Las repeticiones extienden la corrida actual; un carácter nuevo inicia otra.
  3. Devuelve las corridas como pares (character, conteo).

Palabras clave y builtins usados aquí

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.

Escribe este fragmento

Paso 4 de 5 en Algoritmos; paso 54 de 72 en Fundamentos del lenguaje.

← Anterior Siguiente →