例如:
输入 abcdefedaaa,输出 defed
输入abcdeffedaaa,输出deffed
我们要考虑,最大子串的奇偶情况。
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
void huiwen(char s[],int len, char output[])
{
int i,j,max=0;
int x,y;
for(i=0;i<len;i++)
{
for(j=0;i-j>0&&i+j<len;j++)
{
if( s[i-j]!=s[i+j] )
break;
if(j*2+1>max)
{
max = j*2+1;
x = i-j;
y = i+j;
}
}
for(j=0;i-j>0&&i+j+1<len;j++)
{
if( s[i-j]!=s[i+j+1])
break;
if(j*2+2>max)
{
max = j*2+2;
x = i-j;
y = i+j+2;
}
}
}
for(int k=x;k<=y;k++)
*output++ = s[k];
*output = '\0';
}
int main()
{
char array[] = "abcdeffedabade";
int len = strlen(array);
char *output = (char*)malloc(sizeof(char)*len);
huiwen(array,len, output);
printf("%s",output);
return 0;
}