本题阔以暴力枚举
思路:枚举 $i$ ~ $j$ ( $i$ 和 $j$ 皆小于 $s.size()$ ,且 $i<j$ ),看看这个字符串从 $i$ ~ $j$ 是不是非回文,如果是,打擂台取长度最大值。
没看懂?再看一遍
PS:字符串 $i$ ~ $j$ 的长度是 $j-i+1$
AC CODE:
#include<bits/stdc++.h>
using namespace std;
int m;
bool hw(string a){
for(int i=0;i<a.size()/2;i++){
if(a[i]!=a[a.size()-1-i]) return false;
}
return true;
}//判断回文代码
int main(){
string s;
cin>>s;
for(int i=0;i<s.size();i++){
for(int j=i+1;j<s.size();j++){//枚举i~j
if(hw(s.substr(i,j-i+1))==false){//如果i~j是非回文串
int x=j-i+1;
m=max(m,x);//打擂台取最大值
}
}
}
cout<<m;//输出
return 0;
}
完结撒花~~~