最长重复子串



#include <stdio.h>

#include <stdlib.h>

#define BUF_MAX 1000

int index; //子串起始位置

int len;//子串长度

void str_search(const char *str)

{

int i=0,j;

while(str[i]!='\0') ++i;

int strlen=i;

for(i=strlen/2;i>0;--i)

{

int zeronum=0;

for(j=i;j<strlen;++j)

{

   if (str[j]==str[j-i])

   {

    ++zeronum;

    if (zeronum==i)

    {

     index=j-2*i+1;

     len=i;

     return;

    }

   }

   else

   {

    zeronum=0;

   }

}

}

}

int main(int argc, char *argv[])

{

char str[BUF_MAX];

scanf("%s",str);

str_search(str);

printf("%d:%d\n",index,len);

}

posted on 2010-08-17 18:40  dyh333  阅读(97)  评论(0编辑  收藏  举报

导航