#include<stdio.h>
#include<string.h>
int main(){
char str1[100]={0};
char str2[100]={0};
int dp[100][100]={0};
int max=0;
scanf("%s%s",str1,str2);
for(int i=0;i<strlen(str1);i++){
for(int j=0;j<strlen((str2));j++){
if(i==0||j==0){
if(str1[i]==str2[j]){
dp[i][j]=1;
max=max<dp[i][j]?dp[i][j]:max;
}
else{
dp[i][j]=0;
}
}
else{
if(str1[i]==str2[j]){
dp[i][j]=dp[i-1][j-1]+1;
max=max<dp[i][j]?dp[i][j]:max;
}
else{
dp[i][j]=0;
}
}
}
}
printf("%d",max);
}
(C语言版)找出两个字符串中最长的公共子串长度——动态规划
最新推荐文章于 2024-05-22 13:31:32 发布