Leetcode DAY 56: 两个字符串的删除操作 and 编辑距离
创始人
2024-05-29 11:41:07
0
  • 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];}
};

相关内容

热门资讯

中证A500ETF摩根(560... 8月22日,截止午间收盘,中证A500ETF摩根(560530)涨1.19%,报1.106元,成交额...
A500ETF易方达(1593... 8月22日,截止午间收盘,A500ETF易方达(159361)涨1.28%,报1.104元,成交额1...
何小鹏斥资约2.5亿港元增持小... 每经记者|孙磊    每经编辑|裴健如 8月21日晚间,小鹏汽车发布公告称,公司联...
中证500ETF基金(1593... 8月22日,截止午间收盘,中证500ETF基金(159337)涨0.94%,报1.509元,成交额2...
中证A500ETF华安(159... 8月22日,截止午间收盘,中证A500ETF华安(159359)涨1.15%,报1.139元,成交额...
科创AIETF(588790)... 8月22日,截止午间收盘,科创AIETF(588790)涨4.83%,报0.760元,成交额6.98...
创业板50ETF嘉实(1593... 8月22日,截止午间收盘,创业板50ETF嘉实(159373)涨2.61%,报1.296元,成交额1...
港股异动丨航空股大幅走低 中国... 港股航空股大幅下跌,其中,中国国航跌近7%表现最弱,中国东方航空跌近5%,中国南方航空跌超3%,美兰...
电网设备ETF(159326)... 8月22日,截止午间收盘,电网设备ETF(159326)跌0.25%,报1.198元,成交额409....
红利ETF国企(530880)... 8月22日,截止午间收盘,红利ETF国企(530880)跌0.67%,报1.034元,成交额29.0...