Advertisement
_no0B

Untitled

Nov 7th, 2021
1,096
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.98 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2. #define ll long long
  3. #define N ((int)6e4 + 5)
  4. #define MOD ((int)1e9 + 7)
  5. #define MAX ((int)1e9 + 7)
  6. #define MAXL ((ll)1e18 + 7)
  7. #define MAXP ((int)1e3 + 7)
  8. #define thr 1e-8
  9. #define pi acos(-1)  /// pi = acos ( -1 )
  10. #define fastio ios_base::sync_with_stdio(false),cin.tie(NULL)
  11. #define endl "\n"
  12.  
  13. using namespace std;
  14.  
  15.  
  16. /// Edit distance
  17.  
  18.  
  19. string str1 , str2;
  20.  
  21. int solve(int p1 , int p2){
  22.     if(p2 == str2.size()) return 0;
  23.     if(p1 == str1.size()) return str2.size() - p2;
  24.     if(dpp[p1][p2] != -1) return dpp[p1][p2];
  25.     int ans ;
  26.     if(str1[p1] == str2[p2]) ans = solve(p1 + 1 , p2 + 1);
  27.     else{
  28.         ans = solve(p1 + 1 , p2) + 1; /// delete str1[p1]
  29.         ans = min(ans , solve(p1 , p2 + 1) + 1); /// insert
  30.         ans = min(ans , solve(p1 + 1 ,  p2 + 1) + 1) /// replace str1[p1] with str2[p2]
  31.     }
  32.     return dpp[p1][p2] = ans;
  33. }
  34.  
  35. int main()
  36. {
  37.     cin>>str1>>str2;
  38.     memset(dpp,-1,sizeof dpp);
  39.     cout<<solve(0 , 0)<<endl;
  40. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement