Menu
CoddyTech

Decode String

Una cadena codificada representa texto repetido como k[text], que significa que text se escribe k veces seguidas. Los grupos pueden estar dentro de otros grupos, así que 2[a3[b]] significa abbbabbb. Escribe una función que reciba una cadena codificada s y devuelva la cadena decodificada.

Las letras que están fuera de todos los corchetes se mantienen tal como están. Cada contador es un número entero positivo escrito justo antes de su [, y los dígitos no aparecen en ningún otro lugar.

Función

decodeString(s: string) → string
sstring
la cadena codificada
Devuelvestring
la cadena decodificada

Restricciones

  • 1 ≤ s.length ≤ 104
  • s contiene solo letras minúsculas del alfabeto inglés, dígitos, [ y ].
  • s es una codificación válida: cada [ va seguido de un recuento y tiene un ] correspondiente, y ningún corchete está vacío.
  • Cada cantidad k satisface 1 ≤ k ≤ 300 y no tiene ceros iniciales.
  • Los corchetes pueden anidarse hasta 100 niveles de profundidad.
  • La cadena decodificada tiene como máximo 5 × 104 caracteres.

Ejemplos

Entrada
s = "2[ab]3[c]x"
Salida
"ababcccx"
Explicación
2[ab] da abab y 3[c] da ccc. La x está fuera de todos los corchetes, así que se copia tal cual, lo que da ababcccx.

lock icon+22 pruebas ocultas al enviar

challenge icon

Para ir más allá

La cadena decodificada puede ser mucho más larga que la entrada. ¿Cómo devolverías únicamente el carácter en la posición i de la cadena decodificada, sin construirla, cuando la longitud decodificada puede alcanzar 10^18?

Restablecer código
def decodeString(s):
    # Escribe el código aquí
Casos de prueba

Caso 1

Caso 2

Caso 3

Entrada

s = "2[ab]3[c]x"

Esperado

"ababcccx"