单双回文(简单来说就是把一个回文字符串劈成两个)

来源:互联网 发布:知乎,京九高铁 编辑:程序博客网 时间:2024/06/01 09:24
# include <stdio.h># include <string.h># include <ctype.h>int main(){    int i,j,n,m;    char c1[999],c2[999],c3[999];    while(scanf("%d",&n)!=EOF)    {        int l=0;        while(n--)        {            int flag = 1;            memset(c1,0,sizeof(c1));            memset(c2,0,sizeof(c2));            memset(c3,0,sizeof(c3));            l++;            scanf("%s",c1);            int len=strlen(c1);            for(i=0,j=len-1;i<j;i++,j--)            {                if(c1[i]!=c1[j])                {                    flag = 0;                    break;                }                c2[i]=c1[i];                c3[i]=c3[j];            }            if(flag)            {                int flag1=1;                for(i=0,j=len/2-1;i<len/2-1;i++,j--)                {                    if(c2[i]!=c2[j]||c3[i]!=c3[j])                    {                        flag1=0;                        break;                    }                }                if(flag1)                    printf("Case #%d: Double Palindrome\n",l);                else                    printf("Case #%d: Single Palindrome\n",l);            }            else                printf("Case #%d: Not Palindrome\n",l);        }    }    return 0;}


阅读全文
0 0
原创粉丝点击