衡阳建设公司网站,承德市外贸网站建设,齐装网装修公司,卖网格布怎样做网站给定两个单词 word1 和 word2 #xff0c;返回使得 word1 和 word2 相同所需的最小步数。
每步 可以删除任意一个字符串中的一个字符。
示例 1#xff1a; 输入: word1 “sea”, word2 “eat” 输出: 2 解释: 第一步将 “sea” 变为 “ea” #xff0c;第二步将 e…给定两个单词 word1 和 word2 返回使得 word1 和 word2 相同所需的最小步数。
每步 可以删除任意一个字符串中的一个字符。
示例 1 输入: word1 “sea”, word2 “eat” 输出: 2 解释: 第一步将 “sea” 变为 “ea” 第二步将 eat 变为 “ea”
示例 2: 输入word1 “leetcode”, word2 “etco” 输出4
提示 1 word1.length, word2.length 500 word1 和 word2 只包含小写英文字母
最长公共子序列LCS
class Solution {
public:int minDistance(string word1, string word2) {int m word1.length(), n word2.length();vectorvectorint dp(m1,vectorint(n1));for(int i 1; i m; i){char c1 word1.at(i-1);for(int j 1; j n; j){char c2 word2.at(j-1);if(c1 c2){dp[i][j] dp[i-1][j-1] 1;}else{dp[i][j] max(dp[i-1][j], dp[i][j-1]);}}}return mn-2*dp[m][n];}
};这实际上是力扣1143. 最长公共子序列 的变形题目当你求出了两个字符串的最长公共子序列那么他们剩下的字符就是需要删除的最少操作。所以可以参考力扣1143题主页有来求出最长公共子序列然后最后两个字符串的长度相加减去两倍的最长公共子序列就是使得 word1 和 word2 相同所需的最少的删除次数。