Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include<math.h>
- #include<vector>
- #include <queue>
- #include <stack>
- #include<string>
- #include <iomanip>
- #include <algorithm>
- #include <climits>
- using namespace std;
- string s, ss;
- string clean(string s)
- {
- int i = 0, counter = 0;
- string a;
- for (int i = 0; i < s.length(); i++)
- {
- if (s[i] == 32 || (s[i] >= 97 && s[i] <= 122) || (s[i] >= 48 && s[i] <= 57))
- a += s[i];
- else if (s[i] >= 65 && s[i] <= 90)
- a += tolower(s[i]);
- }
- int len = a.length();
- while (i < len)
- {
- if (a[i] != char(32))
- {
- counter++;
- i++;
- }
- else
- {
- if (counter <= 3)
- {
- a.erase(i - counter, counter + 1);
- len = a.length();
- i = i - counter;
- counter = 0;
- }
- else
- {
- i++;
- counter = 0;
- }
- }
- }
- if (counter <= 3)
- a.erase(i - counter, counter + 1);
- counter = 0;
- return a;
- }
- int algo(string s, string ss)
- {
- int n = s.length(), m = ss.length();
- if (m == 0)
- return n;
- if (n == 0)
- return m;
- vector<vector<int> > d(n+1, vector<int>(m+1));
- for (int i = 0; i <= n; i++)
- d[i][0] = i;
- for (int i = 0; i <= m; i++)
- d[0][i] = i;
- int counter = 0, temp;
- for (int i = 1; i <= n; i++)
- {
- for (int j = 1; j <= m; j++)
- {
- if (s[i - 1] == ss[j - 1])
- counter = 0;
- else
- counter = 1;
- temp = min(d[i - 1][j] + 1, d[i][j - 1] + 1);
- d[i][j] = min(temp, d[i - 1][j - 1] + counter);
- }
- }
- return d[n][m];
- }
- int main()
- {
- freopen("input.txt", "r", stdin);
- freopen("output.txt", "w", stdout);
- double counter = 0, q, q1;
- double answer;
- getline(cin, s);
- q = s.length();
- s = clean(s);
- getline(cin, ss);
- q1 = ss.length();
- ss = clean(ss);
- cout<< algo(s, ss);
- }//Π»ΠΈΠ²
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement