单词接龙分析和总结.docxVIP

  • 11
  • 0
  • 约2.6千字
  • 约 3页
  • 2024-01-25 发布于上海
  • 举报

【题8】单词接龙

单词接龙是一个与我们经常玩的成语接龙相类似的游戏。现在我们已知n组单词,且给定一个开头字母,要求出这个字母开头的最长的“龙”(每个单词最多在“龙”中出现两次),在两个单词相连时,其重合部分合为一部分。例如BEAST和ASTONISH,如果接成一条龙则变为BEASTONISH,另外相邻的两部分不能存在包含关系。例如AT和ATIDE间不能相连。

输入

输入的第一行为一个单独的整数N(N≤20)表示单词数,以下N行每行有一个单词,输入的最后一行为一个单个字符,表示“龙”的开头字母。你可以假设以此字母开头的“龙”一定存在。

输出

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

样例输入:

5

ATTOUCHCHEATCHOOSETACT

A

样例输出:

23 (接成的“龙”为ATOUCHEATACTACTOUCHOOSE)

题解

在上述样例中,以’A’为龙头的最长的一条龙共拼接了7个单词。可以明显看出,单词接龙问题并不

含最优子结构的特性。例如拼接3个单词,’ATOUCHOOSE’比’ATOUCHEAT’更长。由此可见,该道题只能通过盲目搜索以指定字母为龙头的所有可能的接龙情况,从中找出长度最长的一条“龙”。

如果回溯法的搜索对象是通过某种运算得出的(例如两个单词的拼接)且可以预先计算出这些搜索对象,那么搜索前一般需进行预处理—通

文档评论(0)

1亿VIP精品文档

相关文档