/*Longest Common Substring*/
Longest Common Substring
原创
©著作权归作者所有:来自51CTO博客作者moqifei的原创作品,请联系作者获取转载授权,否则将追究法律责任
#include<iostream>
#include<string.h>
using namespace std;
char a[101],b[101],s[101];
int c[101][101];
int i,j,k;
void build(int k)
{
int sa= strlen(a);
int sb= strlen(b);
while(k>0)
{
if(c[sa][sb]==c[sa-1][sb])
sa--;
else
if(c[sa][sb]==c[sa][sb-1])
sb--;
else
{
k--;
s[k]=a[sa-1];
sb--;
}
}
}
int main()
{
cout<<"请输入字符串A:"<<endl;
cin>>a;
cout<<"请输入字符串B:"<<endl;
cin>>b;
int sa = strlen(a);
int sb = strlen(b);
for(i=0;i<=sa;i++)c[i][0]=0;
for(i=0;i<=sb;i++)c[0][i]=0;
for(i=1;i<=sa;i++)
{
for(j=1;j<=sb;j++)
{
if(a[i-1]==b[j-1])
c[i][j]=c[i-1][j-1]+1;
else
if(c[i-1][j]>=c[i][j-1])
c[i][j] = c[i-1][j];
else
c[i][j] = c[i][j-1];
}
}
cout<<c[sa][sb]<<endl;
build(c[sa][sb]);
cout<<"最长公共字符子序列是:"<<s<<endl;
return 0;
}
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
spoj Longest Common Substring II
SAM
#include #define 字符串 -
SPOJ LCS Longest Common Substring
DescriptionA string is finite sequence of
spoj #include i++ 初始化 -
【后缀数组】 HDOJ 1403 Longest Common Substring
简单的后缀数组。。。先用倍增算法
HDU 后缀数组 #include i++ #define -
spoj1811 LCS - Longest Common Substring
分析 我们可以建出s串的parent树 然后t串在上面跳着找即可 代码
i++ #include c++ 题解 编程语言 学习