#include <iostream>
using namespace std;
int main()
{
string str;
cin>>str;
int ans=0;
for(int i=0;i<str.length();i++)
{
int an=0;
if(str[i]==str[i+1])
{
for(int j=i,k=i+1;j>=0&&k<str.length();j--,k++)
{
if(str[j]!=str[k]) break;
else an++;
}
ans=max(an*2,ans);
}
an=0;
if(str[i]==str[i+2])
{
for(int j=i,k=i+2;j>=0&&k<str.length();j--,k++)
{
if(str[j]!=str[k]) break;
else an++;
}
ans=max(an*2+1,ans);
}
}
cout<<ans;
}
由题目可知,有效密码即为最长回文字符串,数据范围为2500,暴力即可通过

京公网安备 11010502036488号