
题目
解决代码及点评
/*
有 n个长为 m+1的字符串,如果某个字符串的最后m个字符与某个字符串的前m个字符匹配,则两个字符串可以联接,
问这n个字符串最多可以连成一个多长的字符串,如果出现循环,则返回错误。
*/
#include <iostream>
using namespace std;
int maxlengh = 0;
void go(char *a[20], char **a2, int n)
{
// 遍历13个字符串
for (int i = 0; i < 13; i++)
{
int flag = 0;
// 判断a[i]是不是在a2里,如果是flag = 1
for (int j = 0; j < n; j++)
{
if (a[i] == a2[j])
{
flag = 1;
}
}
if (flag == 1) // 如果是在a2里,那么就看下一个字符串
{
continue;
}
if (n == 0) // n == 0 表示a2里还没有字符串
{
a2[n] = a[i]; // 既然没有,就直接将a[i]保存吧
n++; // 保存完a2里就多了一个元素,要记