patL2-008

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/heermu/article/details/79545179

最长对称子串

对给定的字符串,本题要求你输出最长对称子串的长度。例如,给定"Is PAT&TAP symmetric?",最长对称子串为"s PAT&TAP s",于是你应该输出11。

输入格式:

输入在一行中给出长度不超过1000的非空字符串。

输出格式:

在一行中输出最长对称子串的长度。

输入样例:
Is PAT&TAP symmetric?
输出样例:
11
 
 

做题:emmmmm,比较水的一题,思路很清晰也很暴力

#include <stdio.h>
int main()
{
    char s[10001];
    gets(s);
    int i,max=0,m=1,n=0,numj=0,numo=0;
    if(strlen(s)==1)
        max=1;
    else
    {
        for(i=0;i<strlen(s);i++)//字符串为奇数
        {
            m=i;n=i;
            while(s[++m]==s[--n]&&n>=0&&m<strlen(s))
                numj++;
            if((numj*2+1)>max)
                max=numj*2+1;
                numj=0;
        }
        for(i=0;i<strlen(s);i++)//字符串为偶数
        {
            m=i;n=i+1;
            while(s[m]==s[n]&&m>=0&&n<strlen(s))
            {
                numo++;
                m--;
                n++;
            }
            if((numo*2)>max)
                max=numo*2;
                numo=0;
        }
    }
     printf("%d\n",max);
        return 0;
}

猜你喜欢

转载自blog.csdn.net/heermu/article/details/79545179
008
今日推荐