题干

C++实现
#include <iostream>
#include <stdio.h>
#include <algorithm>
#include <string.h>
using namespace std;
short dp[10002][10002];
int main() {
char s1[10001];
char s2[10001];
scanf("%s%s",s1,s2);
int n = strlen(s1);
int m = strlen(s2);
for (int j=0; j<=m; ++j) {
dp[0][j] = 0;
}
for(int i=0; i <=n; ++i) {
dp[i][0] = 0;
}
short curmax=0;
for(int i = 1;i<=n;i++){
for(int j = 1;j<=m;j++){
if(s1[i-1] >= 'a' && s1[i-1] <= 'z' && s1[i-1]==s2[j-1]){
dp[i][j] = dp[i-1][j-1] + 1;
curmax = max(dp[i][j],curmax);
}
else{
dp[i][j] = 0;
}
}
}
printf("%d\n",curmax);
return 0;
}