Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <vector>
- #define DEL 1
- #define REP 1
- #define INS 1
- using namespace std;
- int EditDistance(string a, string b) ///Quiero convertir a en b
- {
- vector <vector <int> > m (b.size()+1, vector <int> (a.size()+1));
- for(int i=0; i<a.size()+1; i++)
- m[0][i] = i*DEL;
- for(int i=0; i<b.size()+1; i++)
- m[i][0] = i*INS;
- for(int i=1; i<=b.size(); i++)
- {
- for(int j=1; j<=a.size(); j++)
- {
- m[i][j] = m[i][j-1] + DEL;
- m[i][j] = min(m[i][j], m[i-1][j] + INS);
- if(a[j-1] == b[i-1])
- m[i][j] = min(m[i][j], m[i-1][j-1] + 0);
- else
- m[i][j] = min(m[i][j], m[i-1][j-1] + REP);
- }
- }
- return m[b.size()][a.size()];
- }
- int main()
- {
- cout << EditDistance("roca", "car") << endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment