比较两个字符串查找第一个和最后一个差异

时间:2014-05-22 21:27:19

标签: javascript string string-split

我有两个字符串,我想找到第一个和最后一个区别。

即:

S1:'我帮助一位非常好的老太太过马路。'

S2:'我帮助一位老太太过马路。'

期望的输出(通过单词检查):

[2,4] // 2 for 'a', 4 for 'nice'.

因为差异在于:'我帮助a very nice老太太过马路。'

替代期望输出(按字符检查):

[10,21] // 10 for space, 20 for 'e'.

因为区别在于:'我帮助very nice老太太过马路。'

我可以使用它们中的任何一种(或第三种选择),但性能是个问题,因为有时候我会每秒执行几十到几百次的检查。

1 个答案:

答案 0 :(得分:0)

由于您还没有向我们展示代码,我能做的最好的事情就是建议您查看一些"String Metric"算法。这些是在全球高性能应用中使用的经过验证的算法。

我特别要求你阐明以下我最喜欢的算法。实现它们非常容易,维基百科也有一个很好的伪代码:

  1. http://en.wikipedia.org/wiki/Levenshtein_distance
  2. http://en.wikipedia.org/wiki/Hamming_distance
  3. http://en.wikipedia.org/wiki/Smith-Waterman_algorithm