lc583.两个字符串的删除操作
目录
583.两个字符串的删除操作
最长公共子序列
- 给定两个字符串
word1和word2,找出使两个字符串变为相同需要删除的字母的最少的个数 - 可以把这个问题转换为最长公共子序列问题,假设
word1.size() = n,word2.size() = m,最长公共子序列的长度为k,那么两个字符串需要删除的最少的字母的个数就是等于n + m - 2k - 最长公共子序列动态规划状态表示
f[i][j]表示长度为i的word1与长度为j的word2的最长公共子序列的长度 - 对于长度分别为
i,j,word1[i - 1]==word2[j - 1]时,f[i][j] = f[i - 1][j - 1] + 1,否则为max(f[i-1][j], f[i][j-1])
|
|