现在的位置: 首页 > 综合 > 正文

hdu1159

2014年02月11日 ⁄ 综合 ⁄ 共 504字 ⁄ 字号 评论关闭
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<string>
#include<queue>
#include<algorithm>
#include<map>
#include<iomanip>
#define INF 99999999
using namespace std;

const int MAX=1000;
int s[MAX][MAX];//表示字符串a中第i个字符和字符串b中第j个字符前最大个数. 

int main(){
	string a,b;
	while(cin>>a>>b){
		int la=a.size();
		int lb=b.size();
		s[0][0]=0;
		for(int i=0;i<la;++i){
			for(int j=0;j<lb;++j){
				if(a[i] == b[j])s[i+1][j+1]=s[i][j]+1;//a中第i+1个字符,b中第j+1个字符前的最大个数 
				else s[i+1][j+1]=max(s[i+1][j],s[i][j+1]);
			}
		}
		cout<<s[la][lb]<<endl;
	}
	return 0;
}

【上篇】
【下篇】

抱歉!评论已关闭.