两个串的最大长度,题目里没说,随便写了个长度,过了。
代码如下:
#include<cstring> #include<iostream> using namespace std; #define am 1010 int dp[am][am],len1,len2; char s1[am],s2[am]; void init() { len1=strlen(s1); len2=strlen(s2); } void result() { int i,j; memset(dp,0,sizeof(dp)); for(i=0;i<len1;i++) for(j=0;j<len2;j++) if(s1[i]==s2[j]) dp[i+1][j+1]=dp[i][j]+1; else dp[i+1][j+1]=max(dp[i+1][j],dp[i][j+1]); printf("%d\n",dp[len1][len2]); } int main() { while(scanf("%s%s",s1,s2)!=EOF) { init(); result(); } }