Saltar a contenido

Stringones

En el idioma de la tribu de los Stringones, la mayoría de las palabras tienen muchas letras que se repiten de manera consecutiva. El sabio de la tribu ideó un sistema para escribir las palabras de manera abreviada: cada letra aparece antecedida de un número, indicando cuántas veces está repetida.

Por ejemplo, la palabra pppprrrrrogggrraaa se abrevia 4p5r1o3g2r3a.

Desarrolle la función original(abreviada) que recibe como parámetro una palabra abreviada, y retorna la palabra original, antes de haber sido codificada. Suponga que ninguna letra aparece más de nueve veces seguidas.

Ejemplo

>>> original('4p5r1o3g2r3a')
pppprrrrrogggrraaa
Solución
def original(abreviada):
    out = '' # Concatenaremos la palabra original
    i = 0 # Para los indices del string
    while i < len(abreviada): # Recorremos los indices del string
        n = int(abreviada[i]) # Obtenemos el numero de repeticiones
        l = abreviada[i+1] # Obtenemos la letra
        out += l * n  # Se concatena el texto con la repetición de cada letra
        i += 2 # Nos saltamos 2 indices, dada la estructura de los textos abreviados
    return out

# Entrada y salida
abr = input("Ingrese palabra abreviada: ")
print("Original:", original(abr))