就是当首位字符相同时开始,同事从两边往里面找,然后比较,那边先找到比另一边小的就从那边开始输出。
#include<stdio.h>
#include<string.h>
#include<iostream>
using namespace std;
int main(){
char a[2005];
int n,i,j,k;
int be,fi;
while(scanf("%d",&n)!=EOF){
//printf("n=%d\n",n);
//getchar();
for(i=0;i<n;i++){
cin>>a[i];
}
be=0;
j=0;
fi=n-1;
int yes;
while(be<=fi){
if(a[be]>a[fi]){
printf("%c",a[fi]);
fi--;
j++;
}
else if(a[be]<a[fi]){
printf("%c",a[be]);
be++;
j++;
}
else {
yes=0;
int x=be,y=fi;
while(x<y&&a[x]==a[y]){
x++;
y--;
}
if(a[x]<a[y])
yes=1;
if(yes==1){
printf("%c",a[be]);
be++;
j++;
}
else if(yes==0){
printf("%c",a[fi]);
fi--;
j++;
}
}
if(j%80==0){
printf("\n");
}
}
}
return 0;
}