СЛОВА1, если я правильно помню.Вопреки некоторым другим, я согласен, что вам нужен путь Эйлера, а не гамильтониан.В полученном графе слова - это ребра (от первой буквы до последней), а буквы (удобно только строчные буквы от 'a' до 'z' в ASCII) вершины.
На самом деле, что выхотите, это не сам путь, вы хотите знать только, есть ли он.Поэтому вам нужны необходимые и достаточные условия на графе для существования эйлерова пути.
Очевидно, что для существования такого пути граф должен быть связан.Вы можете эффективно определить это с помощью объединения, находящегося .
. Тогда существование такого пути налагает условия на входные и выходные точки вершин.Если вы сформулируете эти условия правильно, а) они необходимы и достаточны, б) их легко проверить.
Веселее найти условия самостоятельно, но вы также можете найти их в статье в Википедии об Эйлериане.пути.