abcfbc abfcab programming contest abcd mnp
4 2 0
1 #include <bits/stdc++.h> 2 using namespace std; 3 char s1[1000],s2[1000]; 4 int len1,len2; 5 int ml[1000][1000]; 6 7 int main() { 8 9 while(scanf("%s%s",s1+1,s2+1)>0) {//从s1[1]开始写入数据 10 len1=strlen(s1+1); 11 len2=strlen(s2+1); 12 for(int i=0;i<=len1;i++){ 13 ml[i][0]=0; 14 } 15 for(int i=0;i<=len2;i++){ 16 ml[0][i]=0; 17 } 18 for(int i=1;i<=len1;i++){ 19 for(int j=1;j<=len2;j++){ 20 if(s1[i]==s2[j]){ 21 ml[i][j]=ml[i-1][j-1]+1; 22 } 23 else ml[i][j]=max(ml[i-1][j],ml[i][j-1]); 24 } 25 } 26 cout<<ml[len1][len2]<<endl; 27 } 28 29 return 0; 30 }
#include <bits/stdc++.h>using namespace std;char s1[1000],s2[1000];int len1,len2;int ml[1000][1000];
int main() {
while(scanf("%s%s",s1+1,s2+1)>0) {//从s1[1]开始写入数据 len1=strlen(s1+1);len2=strlen(s2+1);for(int i=0;i<=len1;i++){ml[i][0]=0;}for(int i=0;i<=len2;i++){ml[0][i]=0;}for(int i=1;i<=len1;i++){for(int j=1;j<=len2;j++){if(s1[i]==s2[j]){ml[i][j]=ml[i-1][j-1]+1;}else ml[i][j]=max(ml[i-1][j],ml[i][j-1]);}}cout<<ml[len1][len2]<<endl;}
return 0;}
原文:https://www.cnblogs.com/aiqinger/p/12592302.html