题解 | #密码截取##中心扩展法#

密码截取

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

#include<stdio.h>
int main()
{
    char str[2500];
    gets(str);
    int len = strlen(str);
    int max=1;
    int count = 0,k=0;
    for(int i=0;i<len;i++)  //奇数扩展
    {
        for(k=1;(k+i<len)&&(i-k)>=0;k++)
            if(str[i+k]==str[i-k])
            {
                count+=2;
                if(count>max)   //获得最大奇数回文长度
                    max=count+1;
            }else{
                count=0;
                break;
            }
    }
    for(int i=0;i<len-1;i++)   //偶数扩展
    {
        if(str[i]==str[i+1])
        {
            count=0;
            for(k=0;(k+i+1<len)&&(i-k)>=0;k++)
                if(str[i+k+1]==str[i-k])
                {
                    count+=2;
                    if(count>max)  //获得最大偶数回文长度
                        max=count;
                }else{
                    count=0;
                    break;
                }
        }
        
    }
    printf("%d",max);
    return 0;
    
}
全部评论
如果输入ABABAB,输出13,错误
点赞 回复 分享
发布于 2022-04-23 14:17
牛逼啊,大佬!
点赞 回复 分享
发布于 2022-04-23 23:49

相关推荐

明天不下雨了:我靠2022了都去字节了还什么读研我教你****:你好,本人985电子科大在读研一,本科西南大学(211)我在字节跳动实习过。对您的岗位很感兴趣,希望获得一次投递机会。
点赞 评论 收藏
分享
一天代码十万三:实习东西太少了,而且体现不出你业务,3个月不可能就这点产出吧,建议实习多写点,玩具项目面试官都不感兴趣的
点赞 评论 收藏
分享
评论
3
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务