代码随想录算法训练营第四十三天| 583. 两个字符串的删除操作 72. 编辑距离
583. 两个字符串的删除操作#
要求:#
删除最少的步数,来让这两个字符串相等
思路:#
求末尾的最长公共子序列的长度,然后减去他们的长度
思路2:#
相等:
dp[i][j] = dp[i-1][j-1]
不相等:
dp[i][j] = min(dp[i-1][j]+1, dp[i][j-1]+1)
代码:#
1 // 要求:两个字符串,删除任意一个字符后,让这两个字符相等 2 // dp[n][m] 以n-1结尾的字符串变成节点为m-1为子序列的最大个数 3 // 4 // 求最大相同子序列长度 5 // 和上一个的区别:不光s[i-1]忽略 t[j-1] 也可以忽略 6 // 7 // dp[i][j] 8 // 相等 dp[i-1][j-1]+1 9 // 不相等 max(dp[i-1][j],dp[i][j-1]) 10 // 11 int minDistance(string word1, string word2) { 12 vector<vector<int>> dp(word1.size() + 1, vector<int>(word2.size() + 1, 0)); 13 14 15 for (int i = 1; i <= word1.size(); i++) 16 { 17 for (int j = 1; j <= word2.size(); j++) 18 { 19 if (word1[i - 1] == word2[j - 1]) 20 { 21 dp[i][j] = dp[i - 1][j - 1] + 1; 22 } 23 else 24 { 25 dp[i][j] = max(dp[i - 1][j], dp[i][j - 1]); 26 } 27 } 28 } 29 30 int result = word1.size() - dp[word1.size()][word2.size()] + word2.size() - dp[word1.size()][word2.size()]; 31 32 return result; 33 }
72. 编辑距离 #
要求:#
返回最少的增加,删除,替换的次数
增加,删除:dp[i-1][j]+1,dp[i][j-1]+1
替换:dp[i-1][j-1]+1
代码:#
1 // 要求:求最小 删除,替换,增加的次数 2 // 思路 3 // dp[n][m] 最小的操作次数 4 // 一样:dp[n-1][m-1] 5 // 删除,增加: dp[i-1][j]+1 dp[i][j-1]+1 6 // 替换:dp[i][j]+1 7 // 8 int minDistance(string word1, string word2) { 9 vector<vector<int>> dp(word1.size() + 1, vector<int>(word2.size() + 1, 0)); 10 11 for (int i = 0; i <= word1.size(); i++) dp[i][0] = i; 12 for (int j = 0; j <= word2.size(); j++) dp[0][j] = j; 13 14 for (int i = 1; i <= word1.size(); i++) 15 { 16 for (int j = 1; j <= word2.size(); j++) 17 { 18 if (word1[i - 1] == word2[j - 1]) 19 { 20 dp[i][j] = dp[i - 1][j - 1]; 21 } 22 else 23 { 24 dp[i][j] = min(min(dp[i - 1][j] + 1, dp[i][j - 1] + 1), dp[i - 1][j - 1] + 1); 25 } 26 } 27 } 28 29 return dp[word1.size()][word2.size()]; 30 }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
2022-08-02 r,r+,w,w+,a,a+的区别