2010-12-03 45 views
0

我正在寻找如何从一组不同长度的字符串中识别常见字符。首先让我告诉同一个问题发布在这里,作者能够找出答案。但我无法得到他的解决方案。我试图通过 发布我的查询,但不确定我是否会收到任何回复。所以我作为一个新的发布。 (这是 链接旧的qs Find common chars in array of strings, in the right order of-strings-in-the-the-order-order)。从字符串数组中识别正确顺序(正则表达式的种类)的常见字符

我是从他身上拿出同样的例子。

假设 “+” 是 “通配符字符”:

阵列( 0 => '48ca135e0 $ 5', 1 => 'b8ca136a0 $ 5', 2 => 'c48ca13730 $ 5', 3 =>'48ca137a0 $ 5');

应返回:

$通配符= '+ 8ca13 + 0 $ 5';

这在我看来是一个标准问题。所以我怀疑这会有一些图书馆 。如果不能为解决这个问题展示一些亮点。 (如答复中所述),因为匹配字符可以在任何地方进入(例如: - arr1 [1]和arr2 [3]可以开始匹配一些索引子串和其他方式也)。

问候,

回答

0

看起来你正在寻找“最长的共同子串”。第一个最长的公共子串是8ca13,第二个最长的是0 $ 5。一旦我们有了这两个字符串,就可以使用集合中的任何字符串,并用一个+替换多余的字符。

http://en.wikipedia.org/wiki/Longest_common_substring_problem