题解 | #密码截取#

密码截取

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

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

int main() {
    char m[2500] = {0};
    fgets(m, 2502, stdin);
    int len = strlen(m);
    int l[2500] = {0};


    for (int i = 0; i < len; i++) {
        for (int j = 0; j <= (len) / 2; j++) {
            if (m[i - j] == m[i + 2 + j]) {
                l[i] = (2 * (j)) + 3;
                continue;
            } else {
                break;
            }
        }
    }

    for (int i = 0; i < len; i++) {
        int e = 0;
        for (int j = 0; j <= (len) / 2; j++) {
            if (m[i - j] == m[i + 1 + j]) {
                e = 2 * (j) + 2;//用来判定中间是一个的情况连的多还是两个的情况连的多
                l[i] = fmax(e, l[i]);
                continue;
            } else {
                break;
            }
        }
    }





    int max = 0;
    for (int i = 0; i < len; i++) {
       // printf("%d\n", l[i]);
        max = (max > l[i]) ? max : l[i];
    }
    printf("%d", max);
    return 0;
}

全部评论

相关推荐

点赞 评论 收藏
分享
ccc6660204:直接转前端,明天开始学,把自己学过Java 什么的全都忘记,不要有任何惋惜,信我,坚持到大三下你会感谢我
计算机有哪些岗位值得去?
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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