算法分析与设计丨第十周丨LeetCode(14)——Edit distance(Hard)

来源:互联网 发布:淘宝网怎么装修店铺 编辑:程序博客网 时间:2024/05/29 12:06

动态规划

题目链接:https://leetcode.com/problems/edit-distance/description/

题目描述:

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 character
b) Delete a character
c) Replace a character

题目解析:这星期有点忙,下次有时间再来补上



class Solution {public:    int minDistance(string word1, string word2) {        int size1 = word1.size() + 1;        int size2 = word2.size() + 1;                vector< vector<int> > temp_matrix(size1,vector<int>(size2));                for(int i = 0;i < size1;++i)            temp_matrix[i][0] = i;                for(int i = 0;i < size2;++i)            temp_matrix[0][i] = i;                for(int i = 1;i < size1;++i)            for(int j = 1;j < size2;++j)            {                int diff = 0;                if(word1[i-1] != word2[j-1])                    diff = 1;                                int temp = min(1+temp_matrix[i-1][j],1+temp_matrix[i][j-1]);                temp = min(temp,diff + temp_matrix[i-1][j-1]);                                temp_matrix[i][j] = temp;                                        }                int result = temp_matrix[size1-1][size2-1];                                return result;            }};


阅读全文
0 0
原创粉丝点击