Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <vector>
- #include <locale>
- #include <cstring>
- using namespace std;
- int min(int a, int b, int c) {
- int min = a;
- if (b < min) min = b;
- if (c < min) min = c;
- return min;
- }
- int different(int a, int b) {
- if (a != b) return 1;
- else return 0;
- }
- int main() {
- setlocale(LC_ALL, "Rus");
- string S1;
- string S2;
- cin >> S1;
- cin >> S2;
- size_t m = S2.size() + 1;
- size_t n = S1.size() + 1;
- vector<vector<int>> D(m);
- for (size_t i = 0; i < m; i++) D[i].resize(n);
- for (size_t j = 0; j < n; j++) D[0][j] = j;
- for (size_t k = 0; k < m; k++) D[k][0] = k;
- for (size_t i = 1; i < m; i++) {
- for (size_t j = 1; j < n; j++) {
- D[i][j] = min(D[i - 1][j - 1] + different(S2[j - 1], S1[i - 1]), D[i - 1][j] + 1, D[i][j - 1] + 1);
- }
- }
- cout << endl << D[m - 1][n - 1];
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement