#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
int main()
{
char p[210],q[210];
int dp[210][210];
while(cin>>p>>q)
{
memset(dp,0,sizeof(dp));
int lenp=strlen(p),lenq=strlen(q);
for(int i=0;i<lenp;i++)
for(int j=0;j<lenq;j++){
if(p[i]==q[j])
dp[i+1][j+1]=dp[i][j]+1;
else
dp[i+1][j+1]=max(dp[i][j+1],dp[i+1][j]);
}
cout<<dp[lenp][lenq]<<endl;
}
return 0;
}
公共子序列
最新推荐文章于 2024-04-16 21:47:46 发布