【十二题解】 | #最长回文子串#

最长回文子串

http://www.nowcoder.com/practice/12e081cd10ee4794a2bd70c7d68f5507

穷举了属于是

#include<stdio.h>

int f_max(int a, int b){

return a>b?a:b;

}

int main() {

char data[350];
char* loc = data;
while (scanf("%c", loc) != EOF)loc++;
int lenth = (loc - data) / sizeof(char) - 1;
int** dp = (int**)malloc(sizeof(int*) * lenth);
for (int i = 0; i < lenth; i++) {
    dp[i] = (int*)malloc(sizeof(int) * lenth);
    memset(dp[i], 1, sizeof(int));
}
for (int i = lenth-1; i >= 0; i--) {
    for (int j = 0; j < lenth; j++) {
        int lenth = j - i + 1;
        if (lenth < 1) {
            dp[i][j] = 0;
        }
        else if (lenth == 1 || (lenth == 2 && data[i] == data[j])) {
            dp[i][j] = lenth;
        }
        else {
            if (dp[i + 1][j - 1] != 0 && (data[i] == data[j]))
            {
                dp[i][j] = lenth;
            }
            else {
                dp[i][j] = 0;
            }
        }
    }
}
int mmax = 0;
for (int i = 0; i < lenth; i++) {
    for (int j = 0; j < lenth; j++) {
        mmax = f_max(mmax, dp[i][j]);
    }
}
printf("%d\n", mmax);

}

全部评论

相关推荐

06-23 11:28
门头沟学院 Java
牛客91966197...:也有可能是点拒绝的时候自动弹的话术
点赞 评论 收藏
分享
八股刚起步,看了javaguide,小林coding,还有面渣,感觉面渣是体验最好的,请问只看面渣够用吗,有不完善的需要补吗?
码农索隆:先背最基础的知识,然后理解情景题,现在面试大多数喜欢问情景题,更考验面试者的基础和临场发挥情况
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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