#include<iostream>
#include<string>
using namespace std;
string LCS(string s1,string s2){
string ans;
int i,j;
int max=0,maxj=0;
int c[100];
for(i=0;i<s2.size();i++)
for(j=s1.size()-1;j>=0;j--){
if (s1[j] == s2[i]) {
if (j==0||i==0) {
c[j]=1;
}else
c[j]=c[j-1]+1;
}else
c[j]=0;
if (c[j]>max) {
max = c[j];
maxj = j;
}
}
if (max==0)
return "";
for(i=maxj-max+1;i<=maxj;i++){
ans +=s1[i];
}
return ans;
}
int main(){
string s1 = "sa22aafffffff";
string s2 = "sa22sdfffffff";
cout<<LCS(s1,s2)<<endl;
return 0;
}
最长公共子序列
最新推荐文章于 2024-09-20 10:50:16 发布