Funktionsblock SIMILAR_TEXT

Funktionsblocket SIMILAR_TEXT beräknar likheten mellan två strängar.

Beräkningen av likheten mellan två strängar sker enligt metoden som beskrivs i Programming Classics: Implementing the World's Best Algorithms av Oliver (ISBN 0-131-00413-1). Observera att denna implementering inte använder en stack som i Olivers pseudokod, men däremot rekursiva anrop som kan öka prestandan (men inte måste). Observera också att komplexiteten hos denna algoritm är O(N³), där N är längden på den längsta strängen.

Ingång STR1

Ingången definierar den första strängen som ska jämföras.

Ingång STR2

Ingången definierar den andra strängen som ska jämföras.

Utgång SIM

Utgången returnerar antalet överensstämmande tecken i båda strängarna.

Antalet överensstämmande tecken beräknas genom att söka efter den längsta gemensamma delsträngen och sedan upprepa detta rekursivt för prefix och suffix. Längderna på alla hittade gemensamma delsträngar summeras.

Utgång PERCENT

Utgången returnerar likheten som en procentandel som flyttal. Resultatet delas med genomsnittet av längderna på de angivna strängarna och multipliceras sedan med 100.