объяснение
Две строки можно перетасовать, переставляя их буквы, чтобы сформировать новую строку, так же как две стопки карт можно перетасовать, чтобы сформировать одну стопку.
Например, строки HELLOи WORLDмогут быть перемешаны, чтобы сформировать HWEOLRLLOD, или HEWORLLLDO, или, возможно, просто HELLOWORLD.
Это не случайный порядок, если исходный порядок букв не сохранен. Например, Din 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и не говорит мне «никогда не доверяйте вводу пользователя!», «Никогда не доверяйте спецификациям!»