当前位置:首页 > 编程笔记 > 正文
已解决

两个字符串的删除操作

来自网友在路上 174874提问 提问时间:2023-11-02 00:07:50阅读次数: 74

最佳答案 问答题库748位专家为你答疑解惑

题目描述

给定两个单词 word1 和 word2 ,返回使得 word1 和 word2 相同所需的最小步数。每步可以删除任意一个字符串中的一个字符。

示例

在这里插入图片描述

思路

其实这道题的思路和最长公共子序列的思路一致,本题让我们求word1 和 word2 相同所需的最小步数,也就是说求word1和word2变成它两的最长公共子序列的步数,那么我们可以求出它两的最长公共子序列,然后,分别用它们各自的长度减去子序列长度就是所求。

代码如下

	public int minDistance(String word1, String word2) {int m = word1.length(), n = word2.length();int[][] dp = new int[m + 1][n + 1];for(int i = 1;i < dp.length;i++){for(int j = 1;j < dp[0].length;j++){if(word1.charAt(i - 1) == word2.charAt(j - 1)){dp[i][j] = 1 + dp[i - 1][j - 1];}else{dp[i][j] = Math.max(dp[i][j - 1], dp[i - 1][j]);}}}return m + n - 2 * dp[m][n];}
查看全文

99%的人还看了

猜你感兴趣

版权申明

本文"两个字符串的删除操作":http://eshow365.cn/6-29724-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!