Leetcode 72. Edit Distance (Hard) (cpp)

来源:互联网 发布:禁用搜狗输入法云计算 编辑:程序博客网 时间:2024/06/03 14:23

Leetcode 72. Edit Distance (Hard) (cpp)

Tag: Dynamic Programming, String

Difficulty: Hard


/*72. Edit Distance (Hard)Given two words word1 and word2, find the minimum number of steps required to convert word1 to word2. (each operation is counted as 1 step.)You have the following 3 operations permitted on a word:a) Insert a characterb) Delete a characterc) Replace a character*/class Solution {public:int minDistance(string word1, string word2) {int row = word1.size(), col = word2.size();vector<vector<int>> t(row + 1, vector<int>(col + 1, 0));for (int i = 0; i < row + 1; i++) {for (int j = 0; j < col + 1; j++) {if (i == 0) {t[i][j] = j;} else if (j == 0) {t[i][j] = i;} else if (word1[i - 1] == word2[j - 1]) {t[i][j] = t[i - 1][j - 1];} else {t[i][j] = min(min(t[i - 1][j - 1], t[i][j - 1]), t[i - 1][j]) + 1;}}}return t.back().back();}};


0 0
原创粉丝点击