题解 | #密码截取#

密码截取

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

#include <stdio.h>
#include <string.h>

// 1. 密码是对称的
// 2. 在字符串中找到最长的回文串即可HJ85

// 1. 得到回文字符串
// 2. 依次遍历每一个字符
//     2.1 以该字符为中心的最大回文子串 aba型
//     2.2 abba型
// 3. 输出大小

int main() {
    
    char input[2510] = {0};
    gets(input);

    int len = strlen(input);
    int left = 0;
    int right = 0;
    int maxlen = 1;
    int temp = 1;

    for(int i = 0; i < len; ++ i)
    {
        //aba
        temp = 1;
        for(left=i-1, right=i+1; left>=0 && right<len; --left, ++right)
        {
            if(input[left] == input[right])
            {
                temp += 2;
            }
            else {
                break;
            }
        }

        maxlen = maxlen > temp ? maxlen : temp;

        //abba
        temp = 0;
        for(left=i, right=i+1; left>=0 && right<len; --left, ++right)
        {
            if(input[left] == input[right])
            {
                temp += 2;
            }
            else {
                break;
            }
        }
        maxlen = maxlen > temp ? maxlen : temp;
    }

    printf("%d", maxlen);

    return 0;
}

全部评论

相关推荐

06-11 17:39
门头沟学院 Java
小呆呆的大鼻涕:卧槽,用户彻底怒了
点赞 评论 收藏
分享
qq乃乃好喝到咩噗茶:院校后面加上211标签,放大加粗,招呼语也写上211
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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