Explicación
Se pueden barajar dos cadenas intercalando sus letras para formar una nueva cadena, al igual que dos pilas de cartas se pueden barajar para formar una sola pila.
Por ejemplo, las cadenas HELLOy WORLDse pueden mezclar para formar HWEOLRLLOD, o HEWORLLLDO, o quizás simplemente HELLOWORLD.
Es no una reproducción aleatoria si la orden original de las cartas no se conserva. Por ejemplo, la Dde WORLDque no puede aparecer siempre antes del Rdespués de haber sido barajadas. Esto significa que EHLLOWRDLO, por ejemplo, no es una mezcla de , HELLOy WORLDaunque contiene todas las letras originales.
Una cadena es una mezcla de gemelos si se puede formar barajando dos cadenas idénticas. Por ejemplo, ABACBDECDEes una mezcla de gemelos porque puede formarse barajando ABCDEy ABCDE. DBEACBCADEno es una mezcla de gemelos porque no se puede formar mezclando dos cadenas idénticas.
Detalles del programa
Dada una cadena de entrada, salida 0si no es una combinación aleatoria de gemelos, y salida de una de las cadenas gemelas si es una combinación aleatoria de gemelos.
Puede suponer que la cadena de entrada tiene una longitud inclusive entre cuatro y veinte caracteres y está compuesta completamente por caracteres alfabéticos en mayúsculas. Debería poder ejecutarse en un tiempo razonable, digamos, menos de 10 minutos.
Este es el código de golf, por lo que gana la solución más corta.
Ejemplo de E / S
> ABACBDECDE
ABCDE
> DBEACBCADE
0
> FFFFFF
FFF
> FFGGG
0
> ABBA
0
> AABB
AB
> AABAAB
AAB
Tengo un ejemplo (no golfizado) de implementación .
FFGGGpara que sea consistente.
that the input string has a length inclusively between four and twenty characters, y no me digas "¡nunca confíes en la entrada del usuario!", "¡Nunca confíes en las especificaciones!"