Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<bits/stdc++.h> //poti scrie librariile pe care le stii aici
- using namespace std;
- // Utility function to find minimum of three numbers
- int min(int x, int y, int z)
- {
- return min(min(x, y), z);
- }
- int editDist(string str1 , string str2 , int m ,int n)
- {
- // If first string is empty, the only option is to
- // insert all characters of second string into first
- if (m == 0) return n;
- // If second string is empty, the only option is to
- // remove all characters of first string
- if (n == 0) return m;
- // If last characters of two strings are same, nothing
- // much to do. Ignore last characters and get count for
- // remaining strings.
- if (str1[m-1] == str2[n-1])
- return editDist(str1, str2, m-1, n-1);
- // If last characters are not same, consider all three
- // operations on last character of first string, recursively
- // compute minimum cost for all three operations and take
- // minimum of three values.
- return min ( editDist(str1, str2, m, n-1)+20 , // Insert, 20 being the cost of insertion
- editDist(str1, str2, m-1, n)+20, // Remove, 20 being the cost of removal
- editDist(str1, str2, m-1, n-1)+5 // Replace, 5 being the cost of transformation
- );
- }
- // Driver program
- int main()
- {
- // your code goes here
- string str1 = "sunday";
- string str2 = "saturday";
- cout << editDist( str1 , str2 , str1.length(), str2.length());
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement