题解 | #编辑距离(一)#动态规划(状态方程)

编辑距离(一)

http://www.nowcoder.com/practice/6a1483b5be1547b1acd7940f867be0da

class Solution {
public:
    /**
     dp[i][j]以i,j结尾的最少操作数
     dp[i][j]可以通过dp[i-1][j],dp[i][j-1], dp[i-1][j-1] 三种状态得到
     
     */
    int editDistance(string str1, string str2) {
        // write code here
        int len1 = str1.size();
        int len2 = str2.size();
        vector<vector<int> > dp(len1+1, vector<int>(len2+1, 0));
        for(int i=0;i<=len1; i++){
            dp[i][0]=i;
        }
        for(int j=0;j<=len2; j++){
            dp[0][j]=j;
        }
        for(int i=1;i<=len1; i++){
            for(int j=1; j<=len2;j++){
                int a = (str1[i-1]==str2[j-1])?0:1;
                dp[i][j] = min(1+dp[i-1][j], min(1+dp[i][j-1], a+dp[i-1][j-1]));
            }
        }
        return dp[len1][len2];
    }
};
全部评论

相关推荐

06-19 14:58
门头沟学院 Java
点赞 评论 收藏
分享
05-13 02:01
已编辑
惠州学院 前端工程师
安静的少年在求佛:建议把公司名字写到标题。以后有人想搜就能直接搜到
点赞 评论 收藏
分享
昨天 18:25
沈阳大学 Java
HR已读不回,是我说话方式不对吗?
大白之主:你是串子吗? hr: 我们不招人了,把岗位挂着boss只是因为我闲得慌
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务