题解 | #最长回文子串#

最长回文子串

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

#include <bits/stdc++.h>
using namespace std;
bool dp[355][355];//dp[i][j]表示区间[i,j]是否为回文子串
int main(){
    string s;
    while(cin>>s){
        for(int i=0;i<s.length();i++)
            dp[i][i]=true;
        for(int i=0;i<s.length()-1;i++)
            dp[i][i+1]=(s[i]==s[i+1]);
        for(int len=3;len<=s.length();len++){//由于在计算时是通过短的子串来获得大的子串的,所以不能直接枚举i,j,必须按照长度从小到大枚举
            for(int i=0;i<s.length()-len+1;i++){
                int l=i,r=i+len-1;
                dp[l][r]=dp[l+1][r-1]&(s[l]==s[r]);
            }
        }
        int maxx=1;
        for(int i=0;i<s.length();i++)
            for(int j=i + 1;j<s.length();j++)
                if(dp[i][j])
                    maxx=max(maxx,j-i+1);
        cout<<maxx<<endl;
    }
    
    
}
全部评论

相关推荐

黑曼巴在线招人:草拟
点赞 评论 收藏
分享
实习回来快一个月了,海投海笔海测全干了,今天面了两个真的有点心碎,好难啊!&nbsp;感觉现在就是纯碰瓷互联网,焦虑,,,&nbsp;阿里云快给我泡出来!!!
小肥罗:别焦虑,心态不好影响健康,心态放平哦,我可以告诉你,我大三的暑假拿了15份offer,但是我投递了300+企业,整个暑假,我都是边学习,边改简历,边刷题,边投递简历,边应对笔试,面试,一天三家公司的笔试/面试,我一天没睡几个小时,一屁股坐在房间,就像钉在那里一样。。。我也哭过,但是哭完后我也是继续努力才有15份offer的,加油兄弟!不许气馁哈
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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