最长公共字串
最长公共字串
打赏
解释:
当A[i]==B[j]的情况下,我不能像相等情况下把他们都去掉然后加0来得到子问题,因为这样会造成缺失,因为A[i]可能会和B[j-1]或前面的相等
A串:ABCBDAB
B串:BDCABA
最长公共字串的长度就是:4 BCBA
dp[i][j]表示:A串的前i个字符和B串中的前j个字符所能组成的最长公共字串的长度
dp[][]+1
AB B 1
A # 0
相等:
dp[i][j]=dp[i-1][j-1]+1
a[i]!=b[j]不相同的情况
AB BD
dp[2][2]> dp[2][1]
AB B 1 dp[i][j-1] dp[2][1]
A BD 0 dp[i-1][j] dp[1][2]
A B 0 dp[i-1][j-1] dp[1][1]
说一下动态规划
dp[i][j]=dp[i-1][j-1]+1
A串: ADB
B串: CB
为啥:
当A[3]==B[2]
dp[3][2]=dp[2][1]+1
动态规划:把大问题划分成结构相同的子问题
当A[3]==B[2]
A串: AD
B串: C
从后往前比的话:
A串: DA
B串: C
已知的相同是一个B
A串: ADB
B串: CBD
大问题划分成子问题
解释:
当A[i]==B[j]的情况下,我不能像相等情况下把他们都去掉然后加0,因为这样会造成缺失,因为A[i]可能会和B[j-1]或前面的相等
版权申明:欢迎转载,但请注明出处
一些博文中有一些参考内容因时间久远找不到来源了没有注明,如果侵权请联系我删除。
在校每年国奖、每年专业第一,加拿大留学,先后工作于华东师范大学和香港教育大学。
2025-01-31:宅加太忙,特此在网上找女朋友,坐标上海,非诚勿扰,vx:fan404006308
AI交流资料群:753014672
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步