Encontrar la longitud mínima RLE

El algoritmo clásico RLE comprime los datos mediante el uso de números para representar cuántas veces aparece el carácter que sigue a un número en el texto en esa posición. Por ejemplo:

AAABBAAABBCECE => 3A2B3A2B1C1E1C1E

Sin embargo, en el ejemplo anterior, ese método da como resultado que el texto comprimido utilice aún más espacio. Una mejor idea sería usar números para representar cuántas vecessubcadena después de un número aparece en el texto dado. Por ejemplo:

AAABBAAABBCECE => 2AAABB2CE ("AAABB" dos veces, luego "CE" dos veces).

Ahora, mi pregunta es: ¿cómo podría implementar un algoritmo eficiente que descubra el número mínimo de caracteres en un RLE óptimo utilizando este método? Existen métodos de fuerza bruta, pero necesito algo más rápido (como muchoO (longitud2)) ¿Quizás podamos usar programación dinámica?

Respuestas a la pregunta(4)

Su respuesta a la pregunta