Dada la cadena s, encuentre la cadena t más corta, de modo que, t^m = s.Dada la cadena s, encuentre la cadena t más corta, de modo que, t^m = s
Ejemplos:
s="aabbb" => t="aabbb"
s="abab" => t = "ab"
¿Qué tan rápido puede hacerse?
Por supuesto ingenuamente, por cada m divide | s |, puedo probar si substring (s, 0, | s |/m)^m = s.
Uno puede encontrar la solución en O (d (| s |) n) vez, donde d (x) es el número de divisores de s. ¿Se puede hacer de manera más eficiente?