码迷,mamicode.com
首页 > 其他好文 > 详细

字符串距离

时间:2016-06-30 18:14:23      阅读:111      评论:0      收藏:0      [点我收藏+]

标签:

 

int calcstrdis(char * src, char * des, int srclength, int deslength)
{
    int i(0);
    int j(0);
    int tempresult(0);
    int ** rss = new int *[deslength + 1];
    for (i = 0; i <= deslength; ++ i)
        rss[i] = new int[srclength + 1];
    for (i = 0; i <= deslength; ++ i)
        rss[i][0] = i;
    for (i = 0; i <= srclength; ++ i)
        rss[0][i] = i;
    for (i = 1; i <= deslength; ++ i)
        for (j = 1; j <= srclength; ++ j)
            if (des[i] == src[j])
                rss[i][j] = rss[i - 1][j - 1];
            else
            {
                tempresult = rss[i - 1][j - 1];
                tempresult = tempresult < rss[i - 1][j] ? tempresult : rss[i - 1][j];
                tempresult = tempresult < rss[i][j - 1] ? tempresult : rss[i][j - 1];
                rss[i][j] = tempresult + 1;
            }
    tempresult = rss[deslength][srclength];
    for (i = 0; i <= deslength; ++ i)
        delete[] rss[i];
    delete[] rss;
    return tempresult;
}

测试

#include <iostream>

using namespace std;

int main()
{
    char * src = "snowyk";
    char * des = "asunnyk";
    cout
        << calcstrdis(src, des, strlen(src), strlen(des))
        << endl;
    return 0;
}

 

字符串距离

标签:

原文地址:http://www.cnblogs.com/datakv/p/5630640.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!