Leetcode DAY 56: 两个字符串的删除操作 and 编辑距离
创始人
2024-05-29 11:41:07
  • 583. 两个字符串的删除操作

1 、 dp[i][j]  表示  让以word1[i - 1]为结尾的字符串 和 以word2[i - 2]为结尾的字符串 相等需要删除的最少次数

1、dp[i][j] 的 递推需要考虑两种情况:

(1)word1[i - 1] == word2[j - 1]   相当于不考虑word1[i]和word2[j] 只考虑前面的  所以dp[i][j] = dp[i - 1][j - 1]

(2)word1[i - 1] != word2[j - 1]  ;如果不考虑word1[i - 1] 那么dp[i][j] = dp[i - 1][j] + 1; 如果不考虑word2[j - 1]  那么dp[i][j] = dp[i][j - 1] + 1 ; 如果都不考虑   那么dp[i][j] = dp[i - 1][j - 1] + 2

class Solution {
public:int minDistance(string word1, string word2) {int n = word1.size();int m = word2.size();vector> dp(n + 1, vector(m + 1));//dp[0][j]   for(int i = 0; i <= n; i++) dp[i][0] = i;for(int j = 0; j <= m; j++) dp[0][j] = j;for(int i = 1; i <= n; i++) {for(int j = 1; j <= m; j++) {if(word1[i - 1] == word2[j - 1]) {dp[i][j] = dp[i - 1][j - 1];} else {dp[i][j] = min(dp[i - 1][j] + 1, dp[i][j - 1] + 1);}}}return dp[n][m];}
};
  • 72. 编辑距离

1、dp[i][j]表示  以word1[i - 1]为结尾的字符串  -> 以word2[j - 1]为结尾的字符串需要的最少操作次数

2、 word1[i - 1] & word2[j - 1]相等   ->不操作  dp = dp[i -1][j - 1]

     不相等 可以进行 (增 删 换) 

   (1)增: 相当于 不考虑word2[j - 1]  操作数 + 1   

     (2)  删 :相当于  不考虑word2[i -1]   操作数 + 1

     (3)  换:相当于 把word1[i - 1] 替换成word2[j - 1]  相当于 不考虑这俩  操作数 + 1

class Solution {
public:int minDistance(string word1, string word2) {int n = word1.size();int m = word2.size();vector> dp(n + 1, vector(m + 1));// dp[i][0]for(int i = 0; i <= n; i++) dp[i][0] = i;for(int j = 0; j <= m; j++) dp[0][j] = j; for(int i = 1; i <= n; i++) {for(int j = 1; j <= m; j++) {if(word1[i - 1] == word2[j - 1]) {dp[i][j] = dp[i - 1][j - 1];} else {dp[i][j] = min(dp[i - 1][j] + 1, min(dp[i][j - 1] + 1, dp[i - 1][j - 1] + 1));}}}return dp[n][m];}
};

相关内容

热门资讯

悦读丨一心一意,十全十美:在第... (来源:现代商业银行杂志)文|中国工商银行河北省分行团委书记 李嘉懿一心一意,是爱情最朴素的誓言;十...
委内瑞拉称拦截一架非法飞越其领... 本文转自【央视新闻客户端】;当地时间12月2日,委内瑞拉玻利瓦尔国民武装部队战略作战指挥官多明戈·埃...
金融活水润绿能 近日,甘肃省兰州市东城区清洁智慧热源项目的建设工地一派忙碌景象。该项目是兰州市重点新能源热源项目之一...
因势利导应对西北暖湿化 徐 骏作(新华社发) 戈壁荒滩下了创纪录的连阴雨,沙漠腹地出现汹涌洪水……近年来,我国西北地区出现一...
航贸金融加速数智化转型 近日,第八届虹桥国际经济论坛“航贸金融支持跨境贸易高质量发展”分论坛在国家会展中心(上海)举办。航贸...