题目要求:

  有n个长为m+1的字符串,如果某个字符串的最后m个字符与某个字符串的前m个字符匹配,则两个字符串可以联接。

  问这n个字符串最多可以连成一个多长的字符串,如果出现死循环,则返回错误。

题目分析:

  1.每个字符串都是长为m+1的字符串,两个字符串匹配后长度应该为1+m+1=m+2;

  2.用图的思想来解。如果某两个顶点匹配,则在图中的该两点连线,当遍历完所有点之后,判断该图是否有环,没有就求该图的最长路径;

  3.求图的最长路径与求最短路径类似,可以参考Floyd最短路径算法;

代码实现:

代码链接:http://blog.csdn.net/cxh342968816/article/details/6637006