MeShootIn

Levenshtein distance

Oct 22nd, 2016
52
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.52 KB | None | 0 0
  1. #include <cstdio>
  2. #include <vector>
  3. #include <iostream>
  4. using namespace std;
  5. int main()
  6. {
  7.     string s, t;
  8.     cin >> s >> t;
  9.     int n = s.length(), m = t.length(), i, j;
  10.     vector < vector <int> > dp(n, vector <int> (m));
  11.     if(s[0] != t[0]) dp[0][0] = 1;
  12.     for(i = 1; i < n; i++) dp[i][0] = i;
  13.     for(j = 1; j < m; j++) dp[0][j] = j;
  14.     for(i = 1; i < n; i++) for(j = 1; j < m; j++) dp[i][j] = min(dp[i - 1][j] + 1, min(dp[i][j - 1] + 1, dp[i - 1][j - 1] + ((s[i] != t[j]) ? 1 : 0)));
  15.     printf("%d", dp[n - 1][m - 1]);
  16.     return 0;
  17. }
Add Comment
Please, Sign In to add comment