【发布时间】:2014-04-01 17:59:19
【问题描述】:
我有一个在 2 个字符串中搜索最长匹配子字符串的方法。它通过循环来做到这一点:
myFirstString.contains(mySecondString.subset(i,j))
但是,如果我想在 2 个有序列表中找到最长匹配的子列表,该怎么办?换句话说,如果我的数组不是字符,而是其他对象怎么办?
什么是 List 等价于字符串的“.contains”?
myFirstList.contains(mySecondList.getRange(i,j)) 不正确,因为这里.contains 是在寻找一个项目,而不是一个列表。.Intersection() 只检查匹配项目,而不是匹配项目的子列表。
(理想情况下,我希望这个方法能够使用 List
【问题讨论】:
-
编辑:澄清一下,我正在寻找一个 substring 而不是 subsequence 的等价物。如果我有 ABCA 和 ACAC,那么我希望返回“CA”作为最长匹配,而不是“A...CA”
-
您说您正在寻找接受序列的
Contains。这意味着它返回一个布尔值,指示该序列是否包含在另一个序列中。这正是您所要求的。 -
所以...不,没有等效的 List,我应该编写自己的实现吗? (这篇文章似乎对“子序列”的定义相当困惑——我认为它不只是处理子字符串,抱歉。)
-
这个答案对你有用吗?还是您面临任何其他问题?
标签: c#