in src/Backend/src/api/routers/processor/endpoints.py [0:0]
def levenshtein_distance(string_one: str, string_two: str) -> int:
"""
Checks the levenshtein distance between two strings
For every insertion, deletion or substitution it adds 1 point
0 points means string_one and string_two are the same string
"""
if len(string_one) < len(string_two):
return levenshtein_distance(string_two, string_one)
if len(string_two) == 0:
return len(string_one)
previous_row = list(range(len(string_two) + 1))
for i, char_one in enumerate(string_one):
current_row = [i + 1]
for j, char_two in enumerate(string_two):
insertions = previous_row[j + 1] + 1
deletions = current_row[j] + 1
substitutions = previous_row[j] + (char_one != char_two)
current_row.append(min(insertions, deletions, substitutions))
previous_row = current_row
return previous_row[-1]