题解 | 最长回文子串
最长回文子串
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;
}
