题解 | #最长回文子串# C/C++解法,两个for循环,直接暴力

最长回文子串

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

#include<bits/stdc++.h>
using namespace std;
int main()
{
    string str;
    while(cin>>str)
    {
        int len=0;
        for(int i=0;i<str.size();i++)
        {
            for(int j=str.size()-1;j>i;j--)
            {
                int m=i,n=j;int tmp=0;
                while(str[m]==str[n])
                {
                    tmp++;
                    m++;n--;
                    if(m>=n)//说明回文成立
                    {
                        if(m==n) tmp=2*tmp+1;//若m==n,则回文为奇数,需要+1
                        else tmp*=2;
                        if(len<tmp) len=tmp;
                        break;
                    }

                }


            }
        }
        cout<<len<<endl;
    }
}
全部评论
if(m>=n)//说明回文成立 这里错了 m>n并不能证明成立 中间可能被你中断了 ex.abzxcba 你这就判断成立了 abba不是回文串哦 中心应该是 if(m==n||m+1==n)
点赞 回复 分享
发布于 2021-10-10 11:50

相关推荐

10-13 22:56
门头沟学院 C++
rt,鼠鼠的浪潮网签明天过期,鼠鼠是山东人,好像自己也能接受。之前的面试大厂基本挂干净了,剩下小米二面后在泡,问了下面试官没有挂,但要泡。还有海信似乎也通过了,不过在深圳,鼠鼠也不是很想去。其它还有一些公司应该陆陆续续还有一些面试,现在有些纠结是直接签了还是再等再面呢?大佬们能不能给鼠鼠提一些意见,万分感谢!!!
牛客78696106...:浪潮可不是开摆,当初我还是开发的时候我组长跟我说他们组有段时间天天1,2点走,早上5点就来,全组肝出来心肌炎,浪潮挣钱省立花可不是说说,当然也看部门,但是浪潮普遍就那dio样,而且你算下时薪就知道不高,没事也是9点半走,不然算你旷工
投递小米集团等公司10个岗位
点赞 评论 收藏
分享
永泽one:好厉害,acm➕开源,感觉找个大厂实习背书就好了,能教教开源的一些方法嘛
点赞 评论 收藏
分享
评论
4
4
分享

创作者周榜

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