有关判定英文单词是否可以首尾相接的问题
给定一组英文单词,要判定是否存在一种排列顺序使其首尾字母相衔接.比如a..b,c..d,d..a就可以:c..d -- d..a -- a..b
我把这题想简单了:既然能够首尾相接那就是说,一个单词的尾字母就是下一个单词的首字母,它们是成对出现的.因此可设一26元素的整数数组表示各个字母出现在单词首尾的情况,出现在词首就加1,在词尾则减1,那么如果能够首尾相接,结果一定是要么只有一个1一个-1(表示能形成一条链),要么就全是0(表示可以形成一个环).
但我忽略了这个方法只考虑了必要性而未考虑充分性,因为会有孤立环的情况出现,比如:ab bc ca xy,显然不满足,但若按上面的方法统计出现在首尾的次数则会得出能形成链的错误结论.
那么应该如何做呢?不用回溯搜索有办法吗?