需要字典序较小
比较前后两端的字符:如果出现两个字符相同,那么就要顺移一位去比较附近的一位字符。
#include <iostream>
#include<cstdlib>
#include<cstdio>
#include<stack>
#include<algorithm>
#include<cstring>
#include<queue>
#include<cmath>
#include<vector>
#include<map>
#include<set>
using namespace std;
char x[2010];
int main()
{
int N;
scanf("%d",&N);
for(int i=0;i<N;i++){
cin>>x[i];
}
int a=0;
int b=N-1;
int cnt=0;
while(a<=b){
bool flag=0;
for(int i=0;a+i<b;i++){
if(x[a+i]>x[b-i]){
flag=1;
break;
}
if(x[a+i]<x[b-i]){
flag=0;
break;
}
}
if(flag==1){
putchar(x[b--]);
cnt++;
}
else if (flag==0){
putchar(x[a++]);
cnt++;
}
if(cnt==80){
printf("\n");
cnt=0;
}
}
return 0;
}