最长公共临时文档7


#include<stdio.h>
#include<string.h>
#include<iostream>
using namespace std;
int max3(int a,int b,int c){
	int d=b>c?b:c;
	return a>d?a:d;
}
int max2(int a,int b){
	return a>b?a:b;
}

int dp[1001][1001];
int main(){
char a[1001],b[1001];
while(cin>>a>>b){
int lena=strlen(a);
int lenb=strlen(b);
	memset(dp,0,sizeof(dp));
	int i,j;
	if(a[0]==b[0])dp[0][0]=1;
	for(i=1;i<lena;i++)
	{
	//	dp[i][0]+=dp[i-1][0];
		if(a[i]==b[0])dp[i][0]++;
	}
	for(i=1;i<lenb;i++)
		{
	//		dp[0][i]+=dp[0][i-1];
			if(a[0]==b[i])dp[0][i]++;
		}
	for(i=1;i<lena;i++)
		for(j=1;j<lenb;j++){
			//dp[i][j]+=max2(dp[i-1][j],dp[i][j-1]);

			if(a[i]==b[j])dp[i][j]=dp[i-1][j-1]+1;
			else
			dp[i][j]=max2(dp[i][j-1],dp[i-1][j]);
			}
		cout<<dp[lena-1][lenb-1]<<endl;
		}

	return 0;
}



版权声明:本文为博主原创文章,未经博主允许不得转载。

today lazy . tomorrow die .
原文地址:https://www.cnblogs.com/france/p/4808675.html