题解 | 最长回文子串

最长回文子串

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

//1. 小写字母构成的字符串
//2. 输出它的最长回文
//3. 弄一个动态规划,每一个的左边是否等于右边
//4. 输出最长回文子串的长度     遇到最长最短的问题,一般都用回文。
#include <bits/stdc++.h>
using namespace std;
int main(){
    string s = "#";
    string t;
    cin >> t;
    for(int i = 0;i<t.size();i++){
        s += t[i];
        s += "#";
    }
    vector <int>aa (s.size(),0);
    for(int i = 0;i<s.size();i++){
        for(int j = 1; i-j>=0&&i+j<s.size();j++){
            if(s[i-j] == s[i+j]){
                aa[i] ++;
            }
            else{
                break;
            }
        }
    }
    sort(aa.begin(),aa.end());
        cout << aa[s.size()-1]<<endl;
    return 0;
}

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

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