我想加入两个字符串列表。两个列表都有固定的顺序。
问题:第二个列表部分包含第一个列表的“结束”。我永远不知道第一个列表末尾有多少项位于第二个列表的顶部。
示例:
第一个清单:
testa
testb
testc
testa
testd
testg
第二个清单:
testa //from 1st
testd //from 1st
testg //from 1st
textf
testc
testb
testa
在这里,您可以看到第一个列表中的第一个元素是“继续”。因此,我想从第二个列表中删除这3个项目,然后加入两个列表。
问题:如何调用此类操作?可能有像apache-commons CollectionUtils这样的框架可以执行那些操作吗?
答案 0 :(得分:2)
我不知道它是如何被调用的(尽管它看起来有点像Longest common subsequence problem,但有其他约束)并且我认为你不会找到内置方法。但你可以写下来:
list1
且n1
长度为list2
的n2
i=max(0, n1-n2)
开始,然后检查list1(i) == list2(n1-i-1)
i
,直至找到匹配项list1(i:n1)
和list2(0:n1-i-1)
- 如果匹配则找到了您想要的内容,否则请返回3 这可能会更有效率。