Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
38
Task/Levenshtein-distance/Pascal/levenshtein-distance.pas
Normal file
38
Task/Levenshtein-distance/Pascal/levenshtein-distance.pas
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
Program LevenshteinDistanceDemo(output);
|
||||
|
||||
uses
|
||||
Math;
|
||||
|
||||
function LevenshteinDistance(s, t: string): longint;
|
||||
var
|
||||
d: array of array of integer;
|
||||
i, j, n, m: integer;
|
||||
begin
|
||||
n := length(t);
|
||||
m := length(s);
|
||||
setlength(d, m+1, n+1);
|
||||
|
||||
for i := 0 to m do
|
||||
d[i,0] := i;
|
||||
for j := 0 to n do
|
||||
d[0,j] := j;
|
||||
for j := 1 to n do
|
||||
for i := 1 to m do
|
||||
if s[i] = t[j] then
|
||||
d[i,j] := d[i-1,j-1]
|
||||
else
|
||||
d[i,j] := min(d[i-1,j] + 1, min(d[i,j-1] + 1, d[i-1,j-1] + 1));
|
||||
LevenshteinDistance := d[m,n];
|
||||
end;
|
||||
|
||||
var
|
||||
s1, s2: string;
|
||||
|
||||
begin
|
||||
s1 := 'kitten';
|
||||
s2 := 'sitting';
|
||||
writeln('The Levenshtein distance between "', s1, '" and "', s2, '" is: ', LevenshteinDistance(s1, s2));
|
||||
s1 := 'rosettacode';
|
||||
s2 := 'raisethysword';
|
||||
writeln('The Levenshtein distance between "', s1, '" and "', s2, '" is: ', LevenshteinDistance(s1, s2));
|
||||
end.
|
||||
Loading…
Add table
Add a link
Reference in a new issue