题解 | #公共子串计算#
公共子串计算
https://www.nowcoder.com/practice/98dc82c094e043ccb7e0570e5342dd1b
#include <stdio.h> #include <string.h> int max(char*s1,int len1,char*s2,int len2) { int max=0; char std[151]={0}; for(int k=1;k<=len1;k++) { for(int i=0;i<=len1-k;i++) { strncpy(std,&s1[i],k); char* p=strstr(s2,std); if(p!=NULL&&max<k) { max=k; break; } } } return max; } int main() { char s1[151]={0}; char s2[151]={0}; scanf("%s",s1); scanf("%s",s2); int len1=strlen(s1); int len2=strlen(s2); int result=0; if(len1<len2) result=max(s1,len1,s2,len2); else result=max(s2,len2,s1,len1); printf("%d\n",result); return 0; }