题解 | #密码截取#

密码截取

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;
}

全部评论

相关推荐

11-07 13:31
怀化学院 Java
勇敢牛牛不怕难:又疯一个
点赞 评论 收藏
分享
11-04 14:10
东南大学 Java
_可乐多加冰_:去市公司包卖卡的
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务