您的位置:首页 > 其它

LeetCode 72. Edit Distance

2016-12-02 15:32 423 查看

描述

问一个字符串需要多少的操作才能变成另一个字符串

解决

动态规划

class Solution {
public:
int minDistance(string word1, string word2) {
int length1 = word1.size();
int length2 = word2.size();
vector<vector<int>> dp(length1 + 1, vector<int>(length2 + 1, 0));
for (int i = 0; i <= length1; ++i)
dp[i][0] = i;
for (int j = 0; j <= length2; ++j)
dp[0][j] = j;
for (int i = 0; i < length1; ++i)
{
for (int j = 0; j < length2; ++j)
{
int cost = word1[i] == word2[j] ? 0 : 1;
dp[i + 1][j + 1] = min(min(dp[i][j + 1] + 1, dp[i + 1][j] + 1), dp[i][j] + cost);
}
}
return dp[length1][length2];
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  leetcode