sdnu1022单词接龙

Description


成语接龙的的游戏大家都玩过,现在咱们换换玩法,玩个英文版的“成语接龙”,规则是已知n个单词,给出龙头字母,要求以这个字母开头的最长的“龙”(每个单词最多在“龙”中出现2次),在两个单词相连时,起重合的部分合为一部分,例如best和stabber,接成一条龙则变为bestabber,另外相邻的两部分不能存在包含关系,例如at 和 atside 间不能相连。


Input


输入的第一行为一个整数n (n<=20),表示单词个数,以下n 行每行有一个单词(长度不超过50),输入的最后一行为一个单个字符,表示“龙”开头的字母。此字母开头的“龙”一定存在.


Output


只需输出以此字母开头的最长的“龙”的长度


Sample Input


5
at
touch
cheat
choose
tact
a


Sample Output


23
#include 
#include 
#include 
#include 
using namespace std;
struct  st
{
    char c[55];//
    int cnt;//出现次数
    int len;//字符串长度
}s[25];
int maxx = 0;
int n;

int conn( int x, int le)
{
    if( maxx < le )
    {
        maxx = le ;
    }
    int i , j, l;
    for( i = 1; i<=n; i++)
    {
        if( s[i].cnt <= 2 )
        {
            for( j =0; j>n;
    int i;
    for( i = 1; i<=n ;i++)
    {
     cin>>s[i].c;
     s[i].len = strlen( s[i].c );
     s[i].cnt  = 0;
    }
    scanf("%s", s[0].c );
    conn( 0, 1 );//首单词的下标 长度
    printf("%d\n", maxx );
    return 0;

}

你可能感兴趣的:(编程)