int main(){ char from[] = "SUNDAY"; char to[] = "SATURDAY"; std::cout<<"Min edit distance for converting "<<from<<" to "<<to<<" is:"<<EditDistanceDP(from,to, strlen(from), strlen(to))<<std::endl; std::cout<<"Min edit distance for converting "<<from<<" to "<<to<<" is:"<<EditDistanceRecursion(from,to, strlen(from), strlen(to))<<std::endl; return 0; }
int main() { char X[] = "SUNDAY"; char Y[] = "SATURDAY"; printf("Minimum edits required to convert %s into %s is %d by recursion\n", X, Y, EditDistanceRecursion(X, Y, strlen(X), strlen(Y))); getchar(); return 0; }
int main() { char X[] = STRING_X; // vertical char Y[] = STRING_Y; // horizontal printf("Minimum edits required to convert %s into %s is %d by recursion\n", X, Y, EditDistanceRecursion(X, Y, strlen(X), strlen(Y))); return 0; }
int EditDistanceRecursion( char *X, char *Y, int m, int n ) { // Base cases if( m == 0 && n == 0 ) return 0; if( m == 0 ) return n; if( n == 0 ) return m; // Recurse int left = EditDistanceRecursion(X, Y, m-1, n) + 1; int right = EditDistanceRecursion(X, Y, m, n-1) + 1; int corner = EditDistanceRecursion(X, Y, m-1, n-1) + (X[m-1] != Y[n-1]); return Minimum(left, right, corner); }