87,921
社区成员
发帖
与我相关
我的任务
分享
function levenshtein(str1,str2) {
var len1 = str1.length;
var len2 = str2.length;
var arr = [];
for (var y = 0; y <= len1; y++)
arr[y] = [y];
for (var x = 1; x <= len2; x++)
arr[0][x] = x;
for (var y = 1; y <= len1; y++)
for (var x = 1; x <= len2; x++)
arr[y][x] = Math.min(
arr[y-1][x]+1,
arr[y][x-1]+1,
arr[y-1][x-1]+(str1[y-1]==str2[x-1]?0:1)
);
//console.table(arr);
return 1 - arr[len1][len2] / Math.max(len1,len2);
}
alert(levenshtein("明天是星期六","明天是周六"));
[/quote]
厉害厉害,可以了,谢谢呀!
function levenshtein(str1,str2) {
var len1 = str1.length;
var len2 = str2.length;
var arr = [];
for (var y = 0; y <= len1; y++)
arr[y] = [y];
for (var x = 1; x <= len2; x++)
arr[0][x] = x;
for (var y = 1; y <= len1; y++)
for (var x = 1; x <= len2; x++)
arr[y][x] = Math.min(
arr[y-1][x]+1,
arr[y][x-1]+1,
arr[y-1][x-1]+(str1[y-1]==str2[x-1]?0:1)
);
//console.table(arr);
return 1 - arr[len1][len2] / Math.max(len1,len2);
}
alert(levenshtein("明天是星期六","明天是周六"));