本蒟蒻丑陋的代码:
#include<bits/stdc++.h>
using namespace std;
bool asd(string a){//回文数函数
for(int i=0;i<a.size();i++){
if(a[i]!=a[a.size()-1-i]){
return 0;
}
}
return 1;
}
int main(){
string a,ma;
int n,msi,f=1;//msi=max size
bool flag;
cin>>n;
for(int i=1;i<=n;i++){
cin>>a;
if(asd(a)){
flag=true;//是否判断某位
if(f==1) ma=a;//把第一个回文数存到ma里,后面比较
if(f==1) msi=a.size();//把第一个回文数的位数存到ma里,后面比较
if(a.size()>msi){
msi=a.size();
ma=a;
flag=false;//不用判断某位,因为回文数的位数比需要判断的那个多
}
if(a.size()<msi){
flag=false;//不用判断某位,因为回文数的位数比需要判断的那个少
}
for(int i=0;i<a.size();i++){
if(a[i]>ma[i]&&(flag==true)) {
ma=a;//一位位地比较
}
}
f=2;
}
}
cout<<ma;//输出最大的回文数
return 0;
}
NN的,为什么只拿了20分,哪错了?望dalao解答,悬棺