Example #1
0
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;
}
Example #3
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;
}
Example #4
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);
}