Реализации алгоритмов/Расстояние Левенштейна: различия между версиями

Содержимое удалено Содержимое добавлено
Строка 56:
 
function distance($source, $dest) {
if ($source == $dest) {
return 0;
}
 
$slen = strlen($source);
$dlen = strlen($dest);
 
if ($slen == 0 || $dlen == 0) {
return $dlen ? $dlen : $slen;
} else if ($dlen == 0) {
return $slen;
}
 
Строка 70:
 
for ($i = 0; $i < $slen; $i++) {
$_dist = array([$i + 1)];
$char = $source{[$i}];
for ($j = 0; $j < $dlen; $j++) {
$cost = ($char == $dest{[$j}]) ? 0 : 1;
$_dist[$j + 1] = min(
$dist[$j + 1] + 1, // deletion
Строка 82:
$dist = $_dist;
}
 
return $dist[$j];
return $slendist[$dlen];
}