码迷,mamicode.com
首页 > 其他好文 > 详细

两个字符串最长相同部分

时间:2014-12-10 00:25:01      阅读:261      评论:0      收藏:0      [点我收藏+]

标签:ar   sp   for   on   bs   size   nbsp   har   ca   

/*功能,给出两个字符串,找出一处最长相同的部分*/

char *longestsame(char*,char*);

int main()

{

  char *a = "aaaabbcccc";

  char *b = "bccc";

  char *ret = longestsame(a,b);

  printf("%s\n",ret);

}

char *longestsame(char*a, char* b)

{

  char *longer;

  char *shorter;

  if(strlen(a) > strlen(b))

  {longer = a, shorter = b;}

  else

  { longer = b, shorter = a;}

  unsigned int size = strlen(shorter);

  unsigned int lsize = strlen(longer); 

  for(int i = size; i > 1; i--)

  {

    for(int j = 0; j <= size - i; j++)

    {

      for(int k = 0; k <= lsize - i ; k++)

      {

        if(0 == strncmp((shorter+j),(longer+k),i))

        {

           char* st = (char*)calloc(sizeof(char)*i+1,1);

           strncpy(st,shorter+j,i);

           return st;

        }

      }

    }

  }

  return NULL;

}

两个字符串最长相同部分

标签:ar   sp   for   on   bs   size   nbsp   har   ca   

原文地址:http://www.cnblogs.com/Masato/p/4154509.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!