题解 | #密码截取#

密码截取

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

#include <stdio.h>
#include <string.h>
char str[2501];

int main() {
    gets(str);
    int len=strlen(str);
    int max=0;

    for(int i=0;i<len;i++)
    {
        int left=i,right=i+1;
        while(str[left]==str[right]&&right<len&&left>=0)
        {
            left--;
            right++;
        }
        max=max>(right-left-1)?max:(right-left-1);

        left=i-1;
        right=i+1;
        while(str[left]==str[right]&&right<len&&left>=0)
        {
            left--;
            right++;
        }
        max=max>(right-left-1)?max:(right-left-1);
    }

    printf("%d",max);
    return 0;
}

此题其实就是为了找出最长回文子串,需要分为两种情况:

(1)子串长度为奇数

(2)子串长度为偶数

使用的方法为中间开花

需要注意的是右指针的值只要小于len即可,不用小于len-1。

全部评论

相关推荐

rbjjj:太杂了吧,同学,项目似乎都没深度,都是api调度耶,分层架构思想没有体现出来了,前端没有前端优化前端工程化体现,后端微服务以及分层架构没体现以及数据安全也没体现,核心再改改,注重于计算机网络,工程化,底层原理吧
点赞 评论 收藏
分享
10-21 16:54
门头沟学院 Java
后端转测开第一人:微服务没用 校招都不看微服务的 还有就是后端行情是这样的 找实习纯看运气 秋招更是吃运气和缘分 如果对代码没有极致的追求 可以转测开
应届生简历当中,HR最关...
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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