GMLscripts.com

Discuss and collaborate on GML scripts
Invert

You are not logged in.

#1 2016-11-06 16:54:54

ClavosStudios
Member
Registered: 2016-11-06
Posts: 1

string_levenshtein

Expand/// string_levenshtein(str1, str2);
//
//  Returns the levenshtein distance from two given strings.
//
//      str1       string of text1, string
//      str2       string of text2, string
//
/// GMLscripts.com/license

{
var s1 = argument0;
var s2 = argument1;
var s1len, s2len, xx, yy, lastdiag, olddiag, column;

s1len = string_length(s1);
s2len = string_length(s2);
column[s1len+1] = 0;

for(yy = 1; yy <= s1len; yy++) {
    column[yy] = yy;
}

for(xx = 1; xx <= s2len; xx++) {
    column[0] = xx;
    lastdiag = xx-1;
    for(yy = 1; yy <= s1len; yy++) {
        olddiag = column[yy];
        column[yy] = min(column[yy] + 1, column[yy-1] + 1, lastdiag + (string_char_at(s1, yy) != string_char_at(s2, xx)));
        lastdiag = olddiag;
    }
}

return column[s1len];
}

Last edited by ClavosStudios (2016-11-07 00:34:47)

Offline

Board footer

Powered by FluxBB