按题目要求构造字典顺序小的,如果遇到头尾相同的情况,移动下一位字典序小的,代码实现如下
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#define pi 3.14159
int main(){
char a[5000];
int n=0,i=0,k=0;
memset(a,0,sizeof(a));
scanf("%d",&n);getchar();
gets(a);
for(i=0,k=n-1;i<n;){
if(a[i]<a[k])printf("%c",a[i++]);
else if(a[i]>a[k])printf("%c",a[k--]);
else if(i==k){
printf("%c",a[i]);
break;
}
else if(a[i]==a[k]){
for(int j=1;;j++){
if(a[i+j]<a[k-j]){
printf("%c",a[i++]);
break;
}
else if(a[i+j]>a[k-j]){
printf("%c",a[k--]);
break;
}
}
}
}
return 0;
}