#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,暴力即可通过