您的位置:首页 > 编程语言 > C语言/C++

最长回文串前缀

2016-09-12 20:49 148 查看
主要考虑了有两个以上回文串的情况,取末尾的回文串,然后我就从末尾开始判断,测了一些情况都复合,有错的地方请指正。

#include<stdio.h>
#include<string.h>
int huiwen(char *head,char *rear){
while(head<rear){
if(*head==*rear)
{
head++;
rear--;
}
else
return 0;
}
return 1;
}
char a[1000000];
int main(){
while(scanf("%s",a)){
int len=strlen(a);
int count=0,i=0;
char *rear=a,*head=&a[len-1];

while(head>a){
while(*rear!=*head&&rear<=head)
rear++;
if(head!=rear){
if(huiwen(rear,head)){
count=rear-a;
break;
}
}
head--;
rear=a;
}
if(head==a){
count=len;
}
printf("%d\n",count);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c语言