我知道有几种算法(Soundex算法,Levenshtein距离/编辑距离和最长公共子串)可用于比较两个字符串。有没有一种已知的方法可以比较两个以上的字符串,并根据您设置的Max Levenshtein距离来消除那些最不相似的字符串?
示例:
<table>
<tr><td>First Name*</td><td><input type='text' /></td></tr>
<tr><td>Surname*</td><td><input type='text' /></td></tr>
</table>
假设我将Levenshtein距离设置为2,则输出应该只有三个幸存项目。
String -> {sam, ham, jam, stackoverflow}
我的实现具有O(n ^ 2)时间复杂度。有没有更好/更聪明的方法呢?
方法签名:
Output -> {sam, ham, jam}