找出字符串中的最长子串,要求子串的所有字符相同。
例如:str ="sssddddabcdef" ,则输出字串为:dddd;例如:str ="ccdfff" 则输出字串为:fff。
char *GetSameSubStr(char *str)
{
assert(str!=NULL);
char *slow,*fast,ch,*substr;
int count=0,max=0;
slow=fast=str;
while(*fast!=0)
{
if(*fast==*slow)
{
count++;
fast++;
}
else
{
if(max<count)
{
ch=*slow;
max=count;
}
slow=fast;
count=0;
}
if (*fast==0)//例如字符串为"mdd"的情况
{
if(max<count)
{
ch=*slow;
max=count;
}
break;
}
}//end while
if(max==0)//如果为空串
{
substr=(char *)malloc(sizeof(char));
*substr=0;
}
else
{
substr=(char *)malloc(sizeof(char)*(max+1));
memset(substr,ch,max);
substr[max]=0;
}
return substr;
}