UVA 10405 - Longest Common Subsequence(最长公共子序)

题目链接

数据中有空格。2Y。

View Code
 1 #include<stdio.h>
 2 #include<string.h>
 3 int p[1001][1001];
 4 int main()
 5 {
 6     int a,b,c,d;
 7     char str1[1001],str2[1001];
 8     while(gets(str1))
 9     {
10         gets(str2);
11         c=strlen(str1);
12         d=strlen(str2);
13         for(a=0;a<=c;a++)
14             p[a][0]=0;
15         for(a=0;a<=d;a++)
16             p[0][a]=0;
17         for(a=1;a<=c;a++)
18             for(b=1;b<=d;b++)
19             {
20                 if(str1[a-1]==str2[b-1])
21                     p[a][b]=p[a-1][b-1]+1;
22                 else
23                 {
24                     if(p[a][b-1]>p[a-1][b])
25                         p[a][b]=p[a][b-1];
26                     else
27                         p[a][b]=p[a-1][b];
28                 }
29             }
30         printf("%d\n",p[c][d]);
31     }
32     return 0;
33 }
posted @ 2012-06-11 21:45  Naix_x  阅读(161)  评论(0编辑  收藏  举报