jain12

Edit distance by DP

May 9th, 2020
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.70 KB | None | 0 0
  1. #include<iostream>
  2. #include<cstring>
  3. #include<math.h>
  4. using namespace std;
  5.  
  6. int EditDistance(char str1[],char str2[],int m,int n){
  7.   if(m==0)
  8.     return n;
  9.   if(n==0)
  10.     return m;
  11.   int arr[m+1][n+1];
  12.   for(int i=0;i<=m;i++){
  13.     for(int j=0;j<=n;j++){
  14.       if(i==0 || j==0){
  15.         arr[i][j]=max(i,j);
  16.         }
  17.       else{
  18.         if(str1[i-1]==str2[j-1])
  19.           arr[i][j]=arr[i-1][j-1];
  20.         else
  21.           arr[i][j]=1+min(arr[i][j-1],min(arr[i-1][j-1],arr[i-1][j]));
  22.         }
  23.       }
  24.     }
  25.   return arr[m][n];
  26.   }
  27.  
  28. int main(){
  29.  char str1[]="sunday";
  30.  char str2[]="saturday";
  31.  int m=strlen(str1);
  32.  int n=strlen(str2);
  33.  cout<<EditDistance(str1,str2,m,n);
  34.  return 0;
  35.  }
Add Comment
Please, Sign In to add comment