题解 | #最小编辑代价#

最小编辑代价

http://www.nowcoder.com/practice/05fed41805ae4394ab6607d0d745c8e4

class Solution {
public:
    /**
     * min edit cost
     * @param str1 string字符串 the string
     * @param str2 string字符串 the string
     * @param ic int整型 insert cost
     * @param dc int整型 delete cost
     * @param rc int整型 replace cost
     * @return int整型
     */
    int minEditCost(string str1, string str2, int ic, int dc, int rc) {
        // write code here

        vector<vector<int>> dp(str1.size()+1,vector<int>(str2.size()+1,0));

        for(int i =0; i<=str2.size();i++){
            dp[0][i] = ic*i;//注意这个是增加
        }

        for(int i =0; i<=str1.size();i++){
            dp[i][0] = dc*i;//这个是减少,因为我们要匹配后面得。
        }

        for(int i =1; i<=str1.size();i++){
            for(int j=1; j<=str2.size();j++){

                int r=0;

                if(str1[i-1]!=str2[j-1]){
                    r = rc;
                }

                dp[i][j] = min(dp[i-1][j]+dc,min(dp[i][j-1]+ic,dp[i-1][j-1] + r));
            }
        }

        return dp[str1.size()][str2.size()];
    }
};
算法解析 文章被收录于专栏

这里主要是算法岗的自我思路总结

全部评论

相关推荐

11-22 16:49
已编辑
北京邮电大学 Java
美团 质效,测开 n*15.5
点赞 评论 收藏
分享
10-07 23:57
已编辑
电子科技大学 Java
八街九陌:博士?客户端?开发?啊?
点赞 评论 收藏
分享
牛客101244697号:这个衣服和发型不去投偶像练习生?
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务