【发布时间】:2021-01-02 00:47:51
【问题描述】:
假设我有两个字符串 string1 和 string2。
var string1 = "images of canadian geese goslings";
var string2 = "Canadian geese with goslings pictures to choose from, with no signup needed";
我需要找到与string2 匹配的string1 的最大子字符串。
这里最大的子字符串是"canadian geese",它与string2匹配。
我怎样才能找到它?我尝试将string1 分解为char[] 并找到单词然后合并匹配的单词,但这没有达到我的目标。
【问题讨论】:
-
天真的方法是获取 string1 的所有子串以降序长度(即所有长度为 n 的子串,然后是所有长度为 n-1、n-2 的子串)并检查它们是否是子串字符串 2。您找到的第一个匹配项是两者中最长的子串,尽管可能还有其他长度相同的子串。
-
@Sinatr 可能反对票是因为缺少任何代码和自己的努力
-
一种可能的解决方案是find all substrings,然后花费最长的时间。
-
@PavelAnikhouski 您引用的答案只是在由某个分隔符分隔的字符串中搜索最长的标记(例如句子中最长的单词)
-
您只搜索整个单词?就字符数或整个单词数而言的“最大子字符串”?
标签: c# arrays string string-matching