Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cstring>
- using namespace std;
- int min(int a, int b, int c){
- if (a <= b && a <= c){
- return a;
- }
- if (b <= a && b <= c){
- return b;
- }
- if (c <= a && c <= b){
- return c;
- }
- }
- int main() {
- char string_1[1001];
- char string_2[1001];
- cin >> string_1 >> string_2;
- int length_1 = strlen(string_1), length_2 = strlen(string_2);
- int** arr = new int*[length_1 + 1];
- for (int i = 0; i <= length_1; ++i){
- arr[i] = new int[length_2 + 1];
- }
- for (int i = 0; i <= length_1; ++i){
- for (int j = 0; j <= length_2; ++j){
- if(i == 0 && j == 0){
- arr[i][j] = 0;
- continue;
- }
- if (j == 0 && i != 0){
- arr[i][j] = i;
- continue;
- }
- if (i == 0 && j != 0){
- arr[i][j] = j;
- continue;
- }
- if (string_1[i - 1] == string_2[j - 1]){
- arr[i][j] = arr[i - 1][j - 1];
- continue;
- }
- arr[i][j] = min(arr[i][j - 1] + 1, arr[i - 1][j] + 1, arr[i - 1][j - 1] + 1);
- }
- }
- /*
- for (int i = 0; i <= length_1; ++i){
- for (int j = 0; j <= length_2; ++j){
- cout << arr[i][j] << " ";
- if (j == length_2)
- cout << "\n";
- }
- }
- */
- cout << arr[length_1][length_2] << "\n";
- /*
- cout << length_1 << "\n" << length_2;
- */
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement