您的位置:首页 > 其它

找出字符串中的最长子串,要求子串的所有字符相同

2012-09-10 11:07 302 查看
找出字符串中的最长子串,要求子串的所有字符相同。

例如: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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐