1 问题
2 问题分析
3 代码编写
#include <iostream>
#include <algorith>
#include <string>
using namespace std;
void test(){
char str1[1000];
char str2[1000];
while(cin>>str1>>str2){
int len1 = strlen(str1);
int len2 = strlen(str2);
int** maxlen = new int* [len1+1];
for(int i = 0;i <= len1;i++){
maxlen[i] = new int[len2+1];
}
for(int i = 0;i <= len1;i++)
maxlen[i][0] = 0;
for(int i = 0;i <= len2;i++)
maxlen[0][i] = 0;
for(int i = 1;i <= len1;i++){
for(int j = 1;j <= len2;j++){
if(str1[i-1] == str2[j-1])
maxlen[i][j] = maxlen[i-1][j-1] + 1;
else
maxlen[i][j] = max(maxlen[i-1][j],maxlen[i][j-1]);
}
}
cout<<maxlen[len1][len2]<<endl;
delete[] maxlen;
}
}
int main()
{
test();
return 0;
}