题解 | #最长回文子串#

最长回文子串

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

//将字符串分两类,奇数长度和偶数长度,再对两种类型分别从中间向两端遍历,找最长回文串
#include <stdio.h>
#include<string.h>
int main()
{
    char arr[350];
    scanf("%s", arr);
    int sz = strlen(arr);
    int mid = sz / 2, i = 1, num = 0, count = 0;
  //偶数型
    for (i = 1; i <= mid+1; i++)
    {
        if ((arr[mid - i + 1] == arr[mid + i])&&((mid+i)<sz))
        {
            count+=2;
		  //记录最大的num
            num = num > count ? num : count;
        }
        else
        {
		  //往左移
            mid--;
            i = 0;
            count = 0;
        }
    }
    count = 0;
    mid = sz / 2;
  //偶数型
    for (i = 1; i <= mid+1; i++)
    {
        if ((arr[mid - i + 1] == arr[mid + i])&&((mid+i)<sz))
        {
            count+=2;
            num = num > count ? num : count;
        }
        else
        {
		  //防止越界
            if(mid<sz-1)
            {
			  //往右移
                mid++;
            }
            else
            {
                break;
            }
            i = 0;
            count = 0;
        }
    }
    count = 1;
    mid = sz / 2;
  //奇数型
    for (i = 1; i <= mid; i++)
    {
        if (arr[mid - i] == arr[mid + i])
        {
            count += 2;
            num = num > count ? num : count;
        }
        else
        {
		  //往左移
            mid--;
            i = 0;
            count = 1;
        }
    }
    count = 1;
    mid = sz / 2;
    for (i = 1; i <= mid; i++)
    {
        if (arr[mid - i] == arr[mid + i])
        {
            count += 2;
            num = num > count ? num : count;
        }
        else
        {
		  //防止越界
            if(mid<sz-1)
            
			  //往右移
                mid++;
            }
            else
            {
                break;            
            }
            i = 0;
            count = 1;
        }
    }
    printf("%d\n", num);
    return 0;
}

全部评论

相关推荐

多多啊&nbsp;多多啊&nbsp;上来四道算法题算法题直播排序,整体比较简单把对象写出来,然后比较规则写明白就OK了。唯一一道A100%的电车充电如何最省钱,到目的地如何充电的钱最少,路上有充电站,每个电站价格不一样。用了DP来做,但感觉是贪心的样子,最后没招了,把不能到的情况给干了出来,过了8%日志分析纠错,滑动窗口,但我最后结果永远少一,过了15%没看,力竭了燃尽了多多&nbsp;以后牛客不用后台找我了,笔试夯爆了
淮竹c:不好意思,打扰大家🙏我是一个拼多多骑手,小电驴的最大电量为C,我的最大电量有1e9这么promax😭😭😭需要从x=0处走到x=L,L足足有1e9那么长处,途中有n个充电站,🙏🙏每个充电站的距离和电价分别为di和pi,初始电量是满的😭😭😭请告诉我到达终点最少要花多少钱😭😭😭求求大家把这些钱转给我
查看2道真题和解析
点赞 评论 收藏
分享
一共一个小时,面试难度以及自己的回答算是最近的面试压力比较大的,实习问了30分钟,中间穿插八股。1.redis数据结构2.redis持久化机制3.mysql索引底层4.聚簇索引与非聚簇索引5.索引优化6.索引失效7.mysql执行一条sql8.那么多索引mysql怎么选(不会)9.tcp与udp区别10.tcp为什么可靠11.消息队列作用12.kafka怎么保证消息有序性13.mcp是什么?14.skills是什么?15.jvm内存分配与回收过程(我讲了从创建对象到判断垃圾对象到垃圾回收我全说了一遍,是这个吗?)16.fullgc触发机制17.tcp的拥塞控制流程(不会了)18.分布式事务解决方案,说了2pc,3pc,tcc。算法是反转双向链表,没有按格式输出,但是面试官没让继续写了,面完以为挂了,结果晚上秒过,看看复试什么情况吧。今天百度打电话准备发offer了,业务跟在手子的差不多,很垂,并且说不分日常暑期,只看表现,会有转正机会,但是考虑再三还是拒绝了,百度实习薪资确实有点低,title也不如之前了,但是面试的二位业务老师我很喜欢,对我的评价也不错,希望之后能有机会共事。从三月份到现在一共面了六家,面试次数总共是8场,情况如下:脉脉二面(无答复,默认挂)百度二面已oc美团一面过,下周一二面shein一面过直接HR面游族一面过直接HR面腾讯一面过等待约二面滴滴明天一面面试通过率还是蛮高的,但是大部分都是日常,感觉对我现在的加成不大,大概率不会去,不知道暑期会是什么情况呢唉,希望能有面试吧,继续加油。字节被无hc直接取消了,现在还没人捞,有没有字节HR救救我
不管什么都不想跳动了:本人美团百度快手都待过,建议肯定是直接留快手多一点产出后转正or直接冲字节腾讯暑期吧。一是快手从福利到基建都吊打另外两家。美团现在这个业务比较惨,本来毛利就很低,亏损严重,今年很可能要优化人力降低成本,去了别说日常,就算暑期后面都很可能被优化。百度其实实习生权限挺高的,可以接触到一些含金量高的项目,但是现在的风评不如之前了,薪资也不高。二是转正概率和薪资是跟产出挂钩的,你都在手子已经积累产出了,去其他家日常实习产出都是从0开始,肯定不可能有你在手子转正可能性大啊,现在日常压根没必要去,而且我有两个师弟都是在快手日常转正的,不用太担心,安心留在手子一边多做一点产出然后一边冲字节腾讯暑期,字节腾讯今年实习岗位非常多的,不如好好把握这个,加油。
查看18道真题和解析
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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