题解 | #密码截取#

密码截取

http://www.nowcoder.com/practice/3cd4621963e8454594f00199f4536bb1

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

相关推荐

点赞 评论 收藏
分享
去B座二楼砸水泥地:攻击力过弱,有待加强😂
点赞 评论 收藏
分享
点赞 1 评论
分享
牛客网
牛客企业服务