Пояснення
Два рядки можна перетасувати, перекресливши їхні букви, щоб утворити новий рядок, подібно до того, що дві купи карт можна перетасувати, щоб утворити одну купу.
Наприклад, рядок HELLOі WORLDможе бути перемішуються з утворенням HWEOLRLLOD, або HEWORLLLDO, або , можливо , просто HELLOWORLD.
Це не перетасування, якщо не збережено початковий порядок букв. Наприклад, Dв WORLDбудь-коли може постати перед Rпісля того , як перемішуються. Це означає , що EHLLOWRDLO, наприклад, не є перетасування HELLOі WORLD, навіть якщо він містить всі оригінальні листи.
Рядок - це перетасування близнюків, якщо його можна утворити перетасуванням двох однакових струн. Наприклад, ABACBDECDEце перетасування близнюків, оскільки воно може утворюватися шляхом переміщення ABCDEта ABCDE. DBEACBCADEне є перетасуванням близнюків, оскільки його неможливо утворити шляхом переміщення двох однакових струн.
Деталі програми
З огляду на рядок введення, виведіть, 0якщо це не переміщення близнюків, і виведіть одну з рядків близнюків, якщо це перетасування близнюків.
Ви можете припустити, що вхідний рядок має довжину включно між чотирма та двадцятьма символами і повністю складається з великих букв. Він повинен мати можливість працювати протягом розумної кількості часу, скажімо, за 10 хвилин.
Це кодовий гольф, тому найкоротше рішення виграє.
Приклад вводу / виводу
> ABACBDECDE
ABCDE
> DBEACBCADE
0
> FFFFFF
FFF
> FFGGG
0
> ABBA
0
> AABB
AB
> AABAAB
AAB
У мене є приклад реалізації (без гольфу) .
FFGGGщоб зробити його послідовним.
that the input string has a length inclusively between four and twenty characters, і не кажіть мені "ніколи не довіряйте вводу користувача!", "Ніколи не довіряйте специфікаціям!"