
Blok funkcji SIMILAR_TEXT oblicza podobieństwo dwóch ciągów znaków.
Obliczanie podobieństwa dwóch ciągów znaków odbywa się zgodnie z metodą opisanej w książce Programming Classics: Implementing the World's Best Algorithms autorstwa Olivera (ISBN 0-131-00413-1). Należy zauważyć, że ta implementacja nie używa stosu, tak jak w pseudokodzie Olivera, ale zamiast tego wywołania rekurencyjne, które mogą poprawić wydajność (ale nie muszą). Należy również zwrócić uwagę na to, że złożoność tego algorytmu wynosi O(N³), gdzie N to długość najdłuższego ciągu znaków.
Wejście definiuje pierwszy ciąg znaków, który ma być porównany.
Wejście definiuje drugi ciąg znaków, który ma być porównany.
Wyjście zwraca liczbę zgodnych znaków w obu ciągach znaków.
Liczba zgodnych znaków jest obliczana przez znalezienie najdłuższego wspólnego prefiksu i sufiksów, a następnie powtarzanie tego procesu rekurencyjnie dla pozostałych części. Długości wszystkich znalezionych wspólnych ciągów znaków są sumowane.
Wyjście zwraca podobieństwo jako wartość procentową w postaci liczby zmiennoprzecinkowej. Wynik dzieli się przez średnią długości podanych ciągów znaków i mnoży przez 100.