最大公共子串

来源:互联网 发布:刀哥swift3.0微博源码 编辑:程序博客网 时间:2024/05/16 14:35
#include "stdio.h"#include "stdlib.h"#include "string.h"int func(char *s1,char *s2,char **r1,char **r2){ int len1=strlen(s1); int len2=strlen(s2); int i,j; int maxlen=0; for(i=0;i<len1;i++) {  for(j=0;j<len2;j++)  {   if(s1[i]==s2[j])//找到了第一个相等的    {     int as=i,bs=j,count=1;// 保存第一个相等的首地址     while(as + 1 < len1 && bs + 1 < len2 && s1[++as] == s2[++bs])     count++;     if(count>maxlen)//如果大于最大长度则更新      {maxlen=count;       *r1=s1+i;       *r2=s2+j;}      }        }  }  return maxlen; } void main() {  char ss1[]="adasdsd";  char ss2[]="sdsdsads";  char *rr1=NULL;  char *rr2=NULL;  int a=0; a=func(ss1,ss2,&rr1,&rr2);  printf("%d,%s,%s",a,rr1,rr2); }  

0 0
原创粉丝点击