1) Почему мы добавляем 1 в этой строке?
d[i-1, j] + 1, // deletion
d[i, j-1] + 1, // insertion
Линия
if s[i] = t[j] then cost := 0
else cost := 1
следует учитывать удаленные/меньшие длины слов, или я что-то упустил?
2) Кроме того, в комментариях указано удаление и вставка. Прав ли я, думая, что он проверяет удаленные символы в обоих словах (целые числа j/i, представляющие длину слов), потому что меньшее значение будет представлять удаленные символы.
Используемый код находится здесь (поскольку это псевдокод, и у меня нет особых проблем с языком, этот поток не относится ни к одной языковой категории):
http://www.iterasi.net/openviewer.aspx?sqrlitid=z0cloj7xhk-ce0f72v4cjq