Advertisement
Guest User

Untitled

a guest
Dec 15th, 2018
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.02 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2.  
  3. using namespace std;
  4. #define ll long long
  5. #define ull unsigned long long
  6. #define pb push_back
  7. #define MAXN 1100
  8. #define F first
  9. #define S second
  10.  
  11. string s1, s2;
  12. int dp[MAXN][MAXN];
  13.  
  14. int main () {
  15.     ios_base::sync_with_stdio (false);
  16.     cin.tie (nullptr); cout.tie (nullptr);
  17.     // freopen ("input.txt", "r", stdin);
  18.     // freopen ("output.txt", "w", stdout);
  19.     cin >> s1 >> s2;
  20.     for (int n = 0; n < s1.length() + 1; n++) {
  21.         for (int m = 0; m < s2.length() + 1; m++) {
  22.             if (n == 0 && m == 0) dp[n][m] = 0;
  23.             else if (n == 0) dp[n][m] = m;
  24.             else if (m == 0) dp[n][m] = n;
  25.             else {
  26.                 int res1 = dp[n][m - 1] + 1;
  27.                 int res2 = dp[n - 1][m] + 1;
  28.                 int res3 = dp[n - 1][m - 1] + (s1[n - 1] == s2[m - 1] ? 0 : 1);
  29.                 int result = min(min(res1, res2), res3);
  30.                 dp[n][m] = result;
  31.             }
  32.         }
  33.     }
  34.     cout << dp[s1.length()][s2.length()];
  35.     return 0;
  36. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement