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

密码截取

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

相关推荐

只写bug的程序媛:才15,我招行20多万,建设银行50多万,说放弃就放弃
点赞 评论 收藏
分享
评论
3
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务