Menu
CoddyTech

Decode String

Una cadena codificada escribe el texto repetido como k[text]: text escrito k veces seguidas. Los grupos pueden anidarse, así que 2[a3[b]] representa abbbabbb. Dada una cadena codificada s, devuelve la cadena decodificada.

Las letras que están fuera de todos los corchetes permanecen igual. Cada cantidad 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 inglesas minúsculas, dígitos, [ y ].
  • s es una codificación válida: cada [ va después de un recuento y tiene un ] correspondiente, y ningún corchete está vacío.
  • Cada cantidad k cumple 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 y se copia tal cual: ababcccx.
challenge icon

Para ir más allá

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

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

Prueba #1

Prueba #2

Prueba #3

Argumento

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

Salida Esperada

"ababcccx"