您的位置:首页 > 其它

FZU 1502 Letter Deletion

2009-12-13 19:57 204 查看

Accept: 174 Submit: 398
Time Limit: 1000 mSec Memory Limit : 32768 KB

Problem Description

You are given two words (each word consists of upper-case English letters).

Try to delete some letters from each word so that the resulting words are equal.

What is the maximum possible length of the resulting word?

Input

There will be no more than 10 test cases.

Each test case consists of a single line, contaning the two words separated by a single space. The length of each of these words is between 1 and 200.

Output

For each test case output the maximum length of a resulting word (the length of the longest word that can be created from both words by removing some letters).

If the two words have no letters in common, output 0.

Sample Input

AAABBB ABABAB
AXYAAZ CCCXCCCYCCCZCC
ABCDE EDCBA

Sample Output

4
3
1
//动态规划题;
#include<iostream>
using namespace std;
int c[201][201];
char x[201],y[201];
void LCSLength(int m,int n)
{
int i,j;
for(i=1;i<=m;i++)
for(j=1;j<=n;j++)
{
if(x[i-1]==y[j-1])
c[i][j]=c[i-1][j-1]+1;
else if(c[i-1][j]>=c[i][j-1])
c[i][j]=c[i-1][j];
else
c[i][j]=c[i][j-1];
}
}
int main()
{
int n,m;
while(scanf("%s%s",x,y)!=EOF)
{
memset(c,0,sizeof(c));
m=strlen(x);
n=strlen(y);
LCSLength(m,n);
cout<<c[m]
<<endl;
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: