Изменения

Перейти к: навигация, поиск

Задача о редакционном расстоянии

195 байт добавлено, 13:08, 4 декабря 2011
Код получения редакционного предписания
== Код получения редакционного предписания ==
Функция '''distance''' принимает две строки '''s1''', '''s2''' и возвращает последовательность действий, необходимых для получения из первой строки второй кратчайшим образом.
'''a''' - цена вставки символа
'''b''' - цена удаления символа
'''c''' - цена замены символа
function distance(s1, s2: longint): string;
end else
begin
if (d[i - 1, j] + a <= d[i, j - 1]+ b) and (d[i - 1, j] + a <= d[i - 1, j - 1]+ c) then
begin
d[i, j] = d[i - 1, j] +1a;
p[i, j].x = i - 1;
p[i, j].y = j;
end;
if (d[i, j - 1] + b <= d[i - 1, j] + a)and (d[i, j - 1] + b <= d[i - 1, j - 1]+ c) then
begin
d[i, j] = d[i, j - 1] +1b;
p[i, j].x = i;
p[i, j].y = j - 1;
end;
if (d[i - 1, j - 1] + c <= d[i, j - 1]+ b) and (d[i - 1, j - 1] + c <= d[i - 1, j]+ a) then
begin
d[i, j] = d[i - 1, j - 1] + 1c;
p[i, j].x = i - 1;
p[i, j].y = j - 1;
Анонимный участник

Навигация