在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
匹配字符串问题你想要匹配两个或多个字符串。 解决方案计算把一个字符串转换成另一个字符串所需的编辑距离或操作数。
讨论可以使用赫斯伯格(Hirschberg)或瓦格纳菲舍尔(Wagner–Fischer)的算法来计算来文史特(Levenshtein)距离。这个例子用的是瓦格纳菲舍尔算法。 这个版本的文史特算法和内存呈线性关系,和时间呈二次方关系。 在这里我们使用str.charAt i这种表示法而不用str[i]这种方式,是因为后者在某些浏览器(如IE7)中不支持。 起初,"by 1"在两次循环中看起来似乎是没用的。它在这里是用来避免一个coffeescript [i..j]语法的常见错误。如果str1或str2为空字符串,那么[1..l1]或[1..l2]将会返回[1,0]。添加了"by 1"的循环也能编译出更加简洁高效的javascript 。 最后,循环结尾处对回收数组的优化在这里主要是为了演示coffeescript中交换两个变量的语法。 |
请发表评论