输入一个字符串, 找出其中所有回文串(长度>=2)并输出。

要求:

(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;
}