算法题---求编辑距离,c++代码实现

// 求a b 两个字符串的编辑距离
//     a b
//     0 1
// a 0
// b 1
// c 2
int calTwoStr(string a, string b){
    int aSize = a.length();
    int bSize = b.length();
    int dp[bSize][aSize];
    for(int i=0; i<aSize; i++){
        dp[0][i] = i;
    }
    for(int j =0; j<bSize; j++){
        dp[j][0] = j;
    }
    int tmp1, tmp2;
    for(int i=1; i<bSize; i++){
        for(int j=1; j<aSize; j++){
            tmp1 = min(dp[i-1][j] + 1, dp[i][j-1] + 1);
            if(a[i] == b[j]){
                tmp2 = dp[i-1][j-1];
            }else{
                tmp2 = dp[i-1][j-1] + 1;
            }
            dp[i][j] = min(tmp1, tmp2);
        }
    }
    return dp[bSize-1][aSize-1];
}

 

posted @ 2020-10-25 21:52  威威后花园  阅读(186)  评论(0编辑  收藏  举报