题目描述
分析:找出子串中最长的回文串,选定一个中心,从中心向两边遍历
#include<bits/stdc++.h>
using namespace std;
int main(){
string s;
getline(cin,s);
int maxLen=0;
for(int i=0;i<s.size();++i){
int j;
for(j=1;i-j>=0&&i+j<s.size()&&s[i+j]==s[i-j];++j);//以当前字符为回文中心查找最长回文子串
maxLen=max(maxLen,2*j-1);
for(j=0;i-j>=0&&i+j+1<s.size()&&s[i-j]==s[i+1+j];++j);//以当前字符为回文中心左侧字符查找最长回文子串
maxLen=max(maxLen,2*j);
}
printf("%d",maxLen);
return 0;
}