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])
|
|