欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

最长公共子序列

程序员文章站 2024-03-17 22:00:40
...

最长公共子序列

#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
const int maxn = 1030;
int dp[maxn][maxn];
int main()
{
	char s1[maxn];
	char s2[maxn];
	while(~scanf("%s %s",s1,s2))
	{
		memset(dp,0,sizeof(dp));
		int i,j;	
		for(i=1;i<=strlen(s1);++i)
		{
			for(j=1;j<=strlen(s2);++j)
			{
				if(s1[i-1]!=s2[j-1])
				{
					dp[i][j]=max(dp[i-1][j],dp[i][j-1]);
				}else dp[i][j]=dp[i-1][j-1]+1;
			}
		}
		/*
		for(int i=0;i<=strlen(s1);++i)
		{
			for(int j=0;j<=strlen(s2);++j)
			{
				cout<<dp[i][j]<<" ";
			}
			cout<<endl;
		}
		*/
		cout<<dp[i-1][j-1]<<endl;
	}
	return 0;
}