diff --git a/levenshtein.cpp b/levenshtein.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..b7d0c778236a8564a10656c7242f87807a18815a
--- /dev/null
+++ b/levenshtein.cpp
@@ -0,0 +1,50 @@
+#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
diff --git a/main.cpp b/main.cpp
index bc8f460d02aeb0695e7840121bc4caefe788a878..f2b0a5e113f5e288114f8c6b00a80b576cea3310 100644
--- a/main.cpp
+++ b/main.cpp
@@ -1,6 +1,9 @@
 #include <iostream>
+#include "levenshtein.cpp"
 
+using namespace std;
 int main() {
-    std::cout << "Hello, World!" << std::endl;
+    int distance =  levenshteinDistance("test","testtest");
+    cout << "the distance is" << distance << endl << flush;
     return 0;
 }