Blok funkcji SIMILAR_TEXT

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 STR1

Wejście definiuje pierwszy ciąg znaków, który ma być porównany.

Wejście STR2

Wejście definiuje drugi ciąg znaków, który ma być porównany.

Wyjście SIM

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 PERCENT

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.