
Blok funkce SIMILAR_TEXT vypočítává podobnost dvou řetězců.
Výpočet podobnosti dvou řetězců probíhá podle metody popsané v knize Programming Classics: Implementing the World's Best Algorithms od Olivera (ISBN 0-131-00413-1). Poznámka, že tato implementace nepoužívá zásobník jako v pseudo-kódu Olivera, ale místo toho rekursivní volání, která mohou zlepšit výkonnost (ale nemusí). Také si uvědomte, že složitost tohoto algoritmu je O(N³), kde N je délka nejdelšího řetězce.
Vstup definuje první řetězec, který má být porovnán.
Vstup definuje druhý řetězec, který má být porovnán.
Výstup vrací počet shodných znaků v obou řetězcích.
Počet shodných znaků se vypočítá tak, že se hledá nejdelší první společná podřetězec a tento postup se pak opakuje rekursivně pro předpony a přípony. Délky všech nalezených společných podřetězců se sečtou.
Výstup vrací podobnost jako procentní hodnotu jako desetinné číslo. K tomu se výsledek vydělí průměrem délek uvedených řetězců a vynásobí 100.