我正在寻找一种用于合并字符串的算法(最好使用java实现)。
我的问题如下:
假设我有一个数组/字符串列表 {" myString1" ,"我的String1" ," my-String-1" ......} 我希望算法能够指出这种可能性非常高 所有这些值都表示" myString1 "。
所以我想压缩我的清单。 也许这可以用KMP完成,也可能有更合适的东西。
感谢。
答案 0 :(得分:1)
我认为Edit distance是合并字符串的良好启发式方法。
修改强>
您可以修改编辑距离算法:
您可以为字符c的d( - ,c)赋予不同的值。
所以在下面的例子中:“String1”,“String2”,你可以“惩罚”分数但让d(1,2)高,而“String 1”,“String1”则不会因为分数为d( - ,'')而受到惩罚。
答案 1 :(得分:0)
或者,Approximate string matching可能有用。我不相信KMP会适合这个目的,因为它是为精确的子串匹配而设计的