Advertisement
Disaac1

Untitled

Sep 20th, 2017
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.97 KB | None | 0 0
  1. function similarity(s1, s2) {
  2. var longer = s1;
  3. var shorter = s2;
  4. if (s1.length < s2.length) {
  5. longer = s2;
  6. shorter = s1;
  7. }
  8. var longerLength = longer.length;
  9. if (longerLength == 0) {
  10. return 1.0;
  11. }
  12. return (longerLength - editDistance(longer, shorter)) / parseFloat(longerLength);
  13. }
  14.  
  15. function editDistance(s1, s2) {
  16. s1 = s1.toLowerCase();
  17. s2 = s2.toLowerCase();
  18.  
  19. var costs = new Array();
  20. for (var i = 0; i <= s1.length; i++) {
  21. var lastValue = i;
  22. for (var j = 0; j <= s2.length; j++) {
  23. if (i == 0)
  24. costs[j] = j;
  25. else {
  26. if (j > 0) {
  27. var newValue = costs[j - 1];
  28. if (s1.charAt(i - 1) != s2.charAt(j - 1))
  29. newValue = Math.min(Math.min(newValue, lastValue),
  30. costs[j]) + 1;
  31. costs[j - 1] = lastValue;
  32. lastValue = newValue;
  33. }
  34. }
  35. }
  36. if (i > 0)
  37. costs[s2.length] = lastValue;
  38. }
  39. return costs[s2.length];
  40. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement