レーベンシュタイン アルゴリズムについては、この Delphi の実装を見つけました。
最大距離に達するとすぐに停止し、それまでに見つかった距離を返すバージョンが必要です。
私の最初のアイデアは、反復ごとに現在の結果を確認することです。
for i := 1 to n do
for j := 1 to m do
begin
d[i, j] := Min(Min(d[i-1, j]+1, d[i,j-1]+1), d[i-1,j-1]+Integer(s[i] <> t[j]));
// check
Result := d[n, m];
if Result > max then
begin
Exit;
end;
end;