Monday, December 15, 2014

Edit distance of two strings

// Recurssive Function (Min Edit distance of two strings)

 public static int editDistance(String s1, String s2)
 {
  int len1 = s1.length();
  int len2 = s2.length();
  
  return editDistanceUtil(s1,s2,len1-1,len2-1);
 }
 
 private static int editDistanceUtil(String s1, String s2, int i, int j)
 {
  if(i == -1 && j == -1) return 0;
  if(i == -1) return j+1;
  if(j == -1) return i+1;
  int diff = 1;
  if(s1.charAt(i) == s2.charAt(j))
   diff = 0;
  
  return min((editDistanceUtil(s1, s2, i, j-1)+1), 
     (editDistanceUtil(s1, s2, i-1, j-1) + diff), 
     (editDistanceUtil(s1, s2, i-1, j) + 1));
 }
 

No comments:

Post a Comment