题解 | #最长回文子串#

最长回文子串

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

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

int main() {
    char str1[351], str2[351];
    scanf("%s", str1);
    int max = 0;
    for(int i = 0; i<strlen(str1)-1; i++) //从左至右遍历,先判断第一次遇到的地方往回判断是否为回文(标准即左进到位置=右进到的位置),否则往后判断直至结束;二次左进1位再遍历,保证遍历全面。
    {
        for(int j = i+1; j<strlen(str1); j++)
        {
            int m = i, n = j;
            while(m<n)
            {
                if(str1[n] != str1[m])
                    break;
                else
                {
                    m++;
                    n--;
                }
            }
            if(m>=n)
            {
                max = (max>(j-i+1)) ? max : (j-i+1);
            }
        }
    }
    printf("%d", max);

    return 0;
}

全部评论

相关推荐

kl_我是东山啊:《相关公司:阿里巴巴》
投递阿里巴巴等公司10个岗位
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务