zrq495
www.zrq495.com

动态规划。

注意输入数据中有空格。

代码如下:

 1 #include<iostream>
 2 #include<cstring>
 3 #include<cstdio>
 4 
 5 using namespace std;
 6 
 7 int len[1000][1000];
 8 
 9 int main()
10 {
11     int i, j, alen, blen;
12     char s1[1000], s2[1000];
13     while(gets(s1))
14     {
15         gets(s2);
16         alen=strlen(s1);
17         blen=strlen(s2);
18         for (i=0; i<=alen; i++)
19             len[i][0]=0;
20         for (j=0; j<=blen; j++)
21             len[0][j]=0;
22         for (i=1; i<=alen; i++)
23         {
24             for (j=1; j<=blen; j++)
25             {
26                 if (s1[i-1] == s2[j-1])
27                     len[i][j]=len[i-1][j-1]+1;
28                 else
29                     len[i][j]=max(len[i][j-1], len[i-1][j]);
30             }
31         }
32         cout << len[alen][blen] << endl;
33     }
34     return 0;
35 }
posted on 2012-08-10 19:21  zrq495  阅读(163)  评论(0编辑  收藏  举报