龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > php编程 >

php 自定义levenshtein 目的:了解levenshtein 算法原理

时间:2014-09-30 12:16来源:网络整理 作者:网络 点击:
分享到:
自定义levenshtein 目的:了解levenshtein 算法原理 [代码片段(38行)]
function _levenshtein($src, $dst){
    if (empty($src)) {
        return $dst;
    }
    if (empty($dst)) {
        return $src;
    }

    $temp = array();

    for($i = 0; $i <= strlen($src); $i++) {
        $temp[$i][0] = $i;
    }
    for($j = 0; $j <= strlen($dst); $j++) {
        $temp[0][$j] = $j;
    }
    for ($i = 1;$i <= strlen($src); $i++) {

        $src_i = $src{$i - 1};

        for ($j = 1; $j <= strlen($dst); $j++) {

            $dst_j = $dst{$j - 1};

            if ($src_i == $dst_j) {
                $cost = 0;
            } else {
                $cost = 1;
            }
            $temp[$i][$j] = min($temp[$i-1][$j]+1, $temp[$i][$j-1]+1, $temp[$i-1][$j-1] + $cost);
        }

    }
    return $temp[$i-1][$j-1];
}

echo _levenshtein("hello", "HElloo");
//该片段来自于http://outofmemory.cn
精彩图集

赞助商链接