Modifique la función lzw_decompress para que reciba como parámetro el tamaño má...
✅ The verified answer to this question is available below. Our community-reviewed solutions help you understand the material better.
Modifique la función lzw_decompress para que reciba como parámetro el tamaño máximo del diccionario y no permita que el mismo crezca más allá de este tamaño, verifique que el algoritmo siga funcionando correctamente.def lzw_decompress(compressed_data): # Crear el diccionario inicial con todos los caracteres únicos diccionario = {i: chr(i) for i in range(256)} # Códigos de 0 a 255 para caracteres ASCII código_actual = 256 # Siguiente código disponible # Inicializar la secuencia con el primer código W = diccionario[compressed_data[0]] resultado = [W] # Iterar sobre el resto de los códigos comprimidos for k in compressed_data[1:]: if k in diccionario: entrada = diccionario[k] # Si el código está en el diccionario elif k == código_actual: entrada = W + W[0] # Caso especial si el código es el siguiente disponible else: raise ValueError(f"Código no válido: {k}") # Agregar la entrada a los resultados resultado.append(entrada) # Agregar la nueva secuencia W + primer carácter de entrada al diccionario diccionario[código_actual] = W + entrada[0] código_actual += 1 # Actualizar W W = entrada return ''.join(resultado)