Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- #define ll long long
- #define ull unsigned long long
- #define pb push_back
- #define MAXN 1100
- #define F first
- #define S second
- string s1, s2;
- int dp[MAXN][MAXN];
- int main () {
- ios_base::sync_with_stdio (false);
- cin.tie (nullptr); cout.tie (nullptr);
- // freopen ("input.txt", "r", stdin);
- // freopen ("output.txt", "w", stdout);
- cin >> s1 >> s2;
- for (int n = 0; n < s1.length() + 1; n++) {
- for (int m = 0; m < s2.length() + 1; m++) {
- if (n == 0 && m == 0) dp[n][m] = 0;
- else if (n == 0) dp[n][m] = m;
- else if (m == 0) dp[n][m] = n;
- else {
- int res1 = dp[n][m - 1] + 1;
- int res2 = dp[n - 1][m] + 1;
- int res3 = dp[n - 1][m - 1] + (s1[n - 1] == s2[m - 1] ? 0 : 1);
- int result = min(min(res1, res2), res3);
- dp[n][m] = result;
- }
- }
- }
- cout << dp[s1.length()][s2.length()];
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement