要求:
(1) 回文串必须是字母组成(大小写)
(2) 多个回文串可以部分字符重叠
(3) 若回文串中包含回文子串则按最大长度计算,其子串不计算在内
(4) 在不同位置出现的相同回文串都要输出
例如
输入
abcbacabc
输出
abcba
cbacabc
要求:
(1) 回文串必须是字母组成(大小写)
(2) 多个回文串可以部分字符重叠
(3) 若回文串中包含回文子串则按最大长度计算,其子串不计算在内
(4) 在不同位置出现的相同回文串都要输出
例如
输入
abcbacabc
输出
abcba
cbacabc
#include <stdio.h>
#include <string.h>
int Yhw(char t[],int b,int e)
{
int j,k;
int l=e-b;
for(j=b;j<l/2+b+1;j++)
{
//printf("%c %c \n",t[j],t[e]);
if(t[j]!=t[e])
{
return 0;
}
e--;
}
return 1;
}
void print(char t[],int b,int e)
{
int j;
for( j=b; j<e+1 ; j++)
{
printf("%c",t[j]);
}
printf("\n");
}
void zhw(char t[],int n)
{
int j,k,h;
{
for( k=0; k<n ; k++)
{
for( h=0; h<n ; h++)
{
if(k-h>=2&&Yhw(t,h,k)==1)
{
printf("h:%d k:%d ",h,k);
print(t,h,k);
}
}
}
}
}
int main()
{
char t[250];
gets(t);
int len=strlen(t);
zhw(t,len);
return 0;
}