Skip to content
Snippets Groups Projects
Commit d2f074fd authored by R0CKB0TT0M's avatar R0CKB0TT0M
Browse files

added implementation of levenshtein distance

parent a011f776
Branches david
No related tags found
No related merge requests found
#include <iostream>
using namespace std;
int levenshteinDistance(string a, string b)
{
//get length of strings
int aLen = a.length();
int bLen = b.length();
// create Matrix for Levenshtein Distance
int** matrix = new int*[aLen];
//initialise Matrix
for (int i = 0;i < aLen;i++){
matrix[i] = new int[bLen];
matrix[i][0] = i;
}
for (int j = 0;j< bLen;j++){
matrix[0][j]= j;
}
//print Matrix
for (int i = 0; i < aLen; i++) {
for (int j = 0; j < bLen; j++) {
cout << matrix[i][j] << ":";
}
cout << std::endl;
}
//fill Matrix
for (int i = 1; i < aLen; i++) {
for (int j = 1; j < bLen; j++) {
int c = 1;
if (a[i] == b[j]){
c = 0;
}
int rep = matrix[i-1][j-1] + c;
int ins =matrix[i][j-1] + 1;
int del = matrix[i-1][j] + 1;
matrix[i][j]=min({rep,ins,del});
}}
//print Matrix
for (int i = 0; i < aLen; i++) {
for (int j = 0; j < bLen; j++) {
cout << matrix[i][j] << ";";
}
cout << std::endl;
}
return matrix[aLen-1][bLen-1];
}
\ No newline at end of file
#include <iostream> #include <iostream>
#include "levenshtein.cpp"
using namespace std;
int main() { int main() {
std::cout << "Hello, World!" << std::endl; int distance = levenshteinDistance("test","testtest");
cout << "the distance is" << distance << endl << flush;
return 0; return 0;
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment