#include<iostream> #include<cstring> #include<cmath> #include<cstdio> using namespace std; char s1[1000],s2[1000]; int dp[1000][1000]; int main() { while (~scanf("%s %s",s1+1,s2+1)) { int len1 = strlen(s1+1); int len2 = strlen(s2+1); int ans = 0; for (int i = 1;i <= len1; i++) for (int j = 1;j <= len2; j++) { if (s1[i] == s2[j]) { dp[i][j] = dp[i-1][j-1]+1; ans = max(ans,dp[i][j]); } } printf("%d\n",ans); memset(dp,0,sizeof(dp)); memset(s1,0,sizeof(s1)); memset(s2,0,sizeof(s2)); } }
最长公共子串(LCS)模板
猜你喜欢
转载自blog.csdn.net/sugarbliss/article/details/80731688
今日推荐
周排行