最长公共连续子串LCS

(对比最长公共连续子序列)
暴力n3
用dp来优化
简书:https://www.jianshu.com/p/730a78212c65
CSDN:https://blog.csdn.net/ten_sory/article/details/79857531
定义dp[i][j]:字符串s1和s2的最长公共连续子串的最后一个字符与这两个字符串的最后一个字符相等的情况下,这个LCS的长度,状态转移方程为:
在这里插入图片描述
注意观察,A[i]!=B[j]的情况下,dp[i][j]也等于0,这是子序列和子串在状态转移方程上的区别。

那么,我们通过两层循环,计算出dp[][]的值,然后找到其中最大的值,就是LCS的长度了。

LCS的长度对应的dp[][]的两个下标为LCS末尾字符分别在字符串A和B中的下标,可以利用这个很容易地找到LCS的具体值,这貌似是最长公共子串比最长公共子序列稍微简单的地方。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值