#include<iostream> #include<cstdio> #include<cstring> using namespace std; char str1[1002],str2[1002]; int d[1002][1002]; int main() { while(gets(str1) && gets(str2)) { int len1=strlen(str1),len2=strlen(str2); memset(d,0,sizeof(d)); for(int i=1; i<=len1; ++i) for(int j=1; j<=len2; ++j) { if(str1[i-1]==str2[j-1]) d[i][j]=d[i-1][j-1]+1; else d[i][j]=max(d[i-1][j],d[i][j-1]); } printf("%d\n",d[len1][len2]); } return 0; }
模板: