Advertisement

DFS C++单词接龙

阅读量:

单词接龙是一种与我们日常所玩的成语接龙游戏相似的玩法。

目前,我们掌握了一组单词,并且已知一个起始字母,需要找出以该字母开头的最长“龙”,其中每个单词最多可被使用两次。

当两个单词连接时,它们之间重叠的部分将被合并为一个整体,例如 beast 与 astonish 连接后会形成 beastonish。

在连接过程中,我们可以自由选择重叠部分的长度,但该长度需满足大于等于1,并且必须严格小于两个字符串各自的长度,比如 at 与 atide 之间无法进行连接。

输入格式

输入的首行包含一个单独的整数 n,用于表示单词的数量。接下来的 n 行中,每一行均包含一个单词(仅由大写或小写字母构成,长度不超过20个字符)。输入的最后一行则为一个单独的字符,代表“龙”这一词语的起始字母。可确保以该字母开头的“龙”字必定存在于输入之中。

输出格式

仅需输出以该字母起始的最长“龙”字的长度。

数据范围

当n的数值不超过20时,
相关单词将被随机生成。

输入样例解析

复制代码
 5

    
 at
    
 touch
    
 cheat
    
 choose
    
 tact
    
 a
    
    
    
    

输出样例:

复制代码
    23
    
    

所构成的“龙”

全部评论 (0)

还没有任何评论哟~