UVA 10405 - Longest Common Subsequence(最长公共子序)
数据中有空格。2Y。
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
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 }