我想找到符合以下规则的最长的单词序列:
- 每个单词最多只能使用一次
- 所有单词都是字符串
- 如果 的最后两个字符与 的前两个字符匹配,
sa
则两个字符串sb
可以连接起来。sa
sb
在连接的情况下,它是通过重叠这些字符来执行的。例如:
- sa = "都灵"
- 某人=“诺瓦拉”
- sa concat sb = "torinovara"
例如,我有以下输入文件“input.txt”:
诺瓦拉
都灵
韦尔切利
拉文纳
那不勒斯
利弗诺
弥赛亚
新人
罗马
并且,根据上述规则,上述文件的输出应该是:
都灵
诺瓦拉
拉文纳
那不勒斯
里窝那
新人
因为最长可能的连接是:
torinovaravennapolivornovilligure
谁能帮我解决这个问题?最好的数据结构是什么?