#include <cstdio>
#include <cstring>
#include <iostream>
using namespace std;
#define N 1005
char str1[N], str2[N];
int LCS(){
int num[2][N], i, j, k;
memset(num, 0, sizeof(num));
for( i = 0; i < strlen(str1); i ++)
for(j = 0, k = i&1; j < strlen(str2); j ++)
if( str1[i] == str2[j] ) num[k][j+1] = num[!k][j] + 1;
else num[k][j+1] = max( num[k][j], num[!k][j+1] );
return num[k][j];
}
int main(){
while( ~scanf("%s%s",str1, str2) ){
printf("%d\n", LCS());
}
}
最長公共字串
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.