Explication
Deux chaînes peuvent être mélangées en intercalant leurs lettres pour former une nouvelle chaîne, tout comme deux piles de cartes peuvent être mélangées pour former une seule pile.
Par exemple, les chaînes HELLOet WORLDpeuvent être mélangées pour former HWEOLRLLOD, ou HEWORLLLDO, ou peut-être simplement HELLOWORLD.
Ce n'est pas un mélange si l'ordre des lettres d'origine n'est pas conservé. Par exemple, le Din WORLDne peut jamais apparaître avant le Raprès avoir été mélangé. Cela signifie que EHLLOWRDLO, par exemple, n'est pas un mélange de HELLOet WORLD, même s'il contient toutes les lettres originales.
Une chaîne est un mélange de jumeaux si elle peut être formée en mélangeant deux chaînes identiques. Par exemple, ABACBDECDEest un mélange de jumeaux car il peut être formé par mélange ABCDEet ABCDE. DBEACBCADEn'est pas un mélange de jumeaux car il ne peut pas être formé en mélangeant deux chaînes identiques.
Détails du programme
Étant donné une chaîne d'entrée, sortez 0si ce n'est pas un mélange de jumeaux, et sortez l'une des chaînes jumelles s'il s'agit d'un mélange de jumeaux.
Vous pouvez supposer que la chaîne d'entrée a une longueur comprise entre quatre et vingt caractères et est entièrement composée de caractères alphabétiques majuscules. Il devrait pouvoir fonctionner dans un laps de temps raisonnable, disons moins de 10 minutes.
C'est le golf de code, donc la solution la plus courte l'emporte.
Exemple d'E / S
> ABACBDECDE
ABCDE
> DBEACBCADE
0
> FFFFFF
FFF
> FFGGG
0
> ABBA
0
> AABB
AB
> AABAAB
AAB
J'ai un exemple d'implémentation (non-golfé) .
FFGGGpour le rendre cohérent.
that the input string has a length inclusively between four and twenty characterset ne me dites pas "ne faites jamais confiance aux entrées de l'utilisateur!", "Ne faites jamais confiance aux spécifications!"