Funkcióblokk SIMILAR_TEXT

A SIMILAR_TEXT funkcióblokk kiszámolja két karakterlánc hasonlóságát.

A két karakterlánc hasonlóságának kiszámítása a Programming Classics: Implementing the World's Best Algorithms by Oliver (ISBN 0-131-00413-1) című könyvben leírt módszer szerint történik. Figyeljen arra, hogy ez az implementáció nem használ stack-et, mint Oliver pseudokódjában, hanem rekurzív hívásokat, amelyek növelhetik a teljesítményt (de nem kell). Tegyük fel továbbá, hogy ez az algoritmus O(N³) komplexitású, ahol N a leghosszabb karakterlánc hossza.

Bevitel STR1

A bevitel meghatározza az első karakterláncot, amelyet össze kell hasonlítani.

Bevitel STR2

A bevitel meghatározza a második karakterláncot, amelyet össze kell hasonlítani.

Kimenet SIM

A kimenet visszaadja az egyező karakterek számát mindkét karakterláncban.

Az egyező karakterek számának meghatározása úgy történik, hogy keressük a leghosszabb első közös részkarakterláncot, majd ezt rekurzívan megismételjük a prefixumok és szuffixumok számára. Az összes megtalált közös részkarakterlánc hossza összeadva adja az eredmény.

Kimenet PERCENT

A kimenet visszaadja a hasonlóságot százalékos értékként lebegőpontos számként. Ehhez az eredményt elosztjuk a megadott karakterláncok hosszának átlagával, majd megszorozzuk 100-zel.