【动归经典】最长公共子串
来源:互联网 发布:中国网络教育大学 编辑:程序博客网 时间:2024/05/17 03:45
有两个字符串st和st2,现在可以从两个字符串中删去一些字符,使剩下的子串相同,问最长的相同子串长度是多少。
【分析】
这道题是典型的动归,我们要从小的问题开始推,首先是st中一个字符在st2中的最长公共子串,然后到st中前两个字符在st2中的最长公共子串,以此类推,最后便可以得到答案。
【例程】
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;int num[1000][1000];
string st,st2;
int len,len2;int main()
{
freopen("same.in","r",stdin);
freopen("same.out","w",stdout);
cin>>st>>st2;
len=st.length();
len2=st2.length();
for(int i=1;i<=len;++i)
for(int j=1;j<=len2;++j)
{
if(st[i-1]==st2[j-1])
num[i][j]=num[i-1][j-1]+1;
else
num[i][j]=max(num[i-1][j],num[i][j-1]);
}
cout<<num[len][len2]<<endl;
return 0;
}
0 0
- 【动归经典】最长公共子串
- 【例题】【动规(最长公共子 串/序列)】
- 动规-最长公共子序列
- [DP动归]-POJ-1836-士兵排队(最长升序子串)
- uva10534 - Wavio Sequence(动归,最长上升子序列)
- nyoj -17 单调递增最长子序列 动归
- HDU 1081(经典动归,求最大子矩阵)
- 最长公共子串
- 最长公共子串
- 最长公共子串
- 最长公共子串
- 最长公共子串
- 最长公共子串
- 最长公共子串
- 最长公共子串
- 最长公共子串
- 最长公共子串
- 最长公共子串
- 【转载】线性筛法求素数(和普通不同,初中可以不用)
- struct tvec_base_t -- data structures for dynamic timers
- 【题解】新学期第一课!题目!
- C中如何调用C++函数?
- LintCode(easy)合并排序数组
- 【动归经典】最长公共子串
- 【题解】2015.10.17题目
- 【转载】FloodFill算法的优化
- 轻松实现RecycleView的下拉刷新、加载更多
- 【转载】SPFA最短路算法解析
- Linux内部的时钟处理机制全面剖析
- 【打CF,学算法——二星级】Codeforces 705B Spider Man (简单博弈)
- 【转载】IPEOI1 1-4题解题报告
- 2015.11.29总结+部分题解(未完待续)