题解 | #最长回文子串#

最长回文子串

http://www.nowcoder.com/practice/12e081cd10ee4794a2bd70c7d68f5507

#include<stdio.h>
#include<string.h>
int main()
{
    char str[350];
    scanf("%s", str);
    int sum=0;
    int max=0;
    int len=strlen(str);
    for(int i=0; i<len; i++) //abba型
    {
        sum = 0;
        if(str[i] == str[i+1])
        {
            for(int j=0; j<len; j++)
            {
                if(str[i-j]==str[i+j+1] && i-j>=0 && i+j+1<len)
                    sum++;
                else
                    break;
            }
            max = max > sum ? max : sum*2;
        }
        else if(str[i-1] == str[i+1]) //aba型
        {
            for(int j=0; j<len; j++)
            {
                if(str[i-j-1]==str[i+j+1] && i-j-1>=0 && i+j+1<len)
                    sum++;
                else
                    break;
            }
            max = max > sum ? max : sum*2+1;
        }
    }
    printf("%d", max);
    return 0;
}
全部评论

相关推荐

不愿透露姓名的神秘牛友
06-23 16:31
点赞 评论 收藏
分享
05-09 13:22
门头沟学院 Java
点赞 评论 收藏
分享
评论
1
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务