#include <stdio.h>
#include <stdlib.h>
char a[2001];
int main()
{
int n;
int i,j,k,ok,count;
while(~scanf("%d",&n)){
count=0;
for(i=0;i<n;i++)
scanf("\n%c",&a[i]);
j=0;k=n-1;
while(j<=k){
ok=0;
for(i=0;i<n;i++){
if(a[j+i]<a[k-i])
{ok=1;break;}
if(a[j+i]>a[k-i])
{ok=0;break;}
}
if(ok) printf("%c",a[j++]);
else printf("%c",a[k--]);
count++;
if(count==80)
{
printf("\n");
count=0;
}
}
printf("\n");
}
return 0;
}
简单的贪心,如果首尾不一样,只要输出字典序小的就可以,如果相同,就比较下一个字符。
ps:这个题贡献了5个PE,不能忍啊,做题还是狠狠读题目吧。