Longest common substring: Difference between revisions

Content added Content deleted
Line 81: Line 81:
=={{header|Aime}}==
=={{header|Aime}}==
<lang aime>void
<lang aime>void
test_string(text &g, text v, text l)
test_string(text &g, v, l)
{
{
integer n;
integer n;


n = 0;
n = prefix(v, l);
while (l[n] && v[n] == l[n]) {
if (~g < n) {
n += 1;
}
if (length(g) < n) {
g = cut(l, 0, n);
g = cut(l, 0, n);
}
}
}
}


text
longest(text u, v)
longest(text u, text v)
{
{
record r;
record r;
text g, l, s;
text g, l, s;


while (length(u)) {
while (~u) {
r[u] = 0;
r[u] = 0;
u = delete(u, 0);
u = delete(u, 0);
}
}
while (length(v)) {
while (~v) {
if (rsk_lower(r, v, l)) {
if (rsk_lower(r, v, l)) {
test_string(g, v, l);
test_string(g, v, l);
Line 114: Line 110:
}
}


return g;
g;
}</lang>
}</lang>
<lang aime>o_(longest("thisisatest", "testing123testing"), "\n");</lang>
<lang aime>o_(longest("thisisatest", "testing123testing"), "\n");</lang>