传送门 https://cn.vjudge.net/problem/POJ-3617
每次都是在S串的首尾选择 字典序较小的字符 放到新串C的尾端
如果相等,那么比较相应的下一位,一次下去。
注意:题目最后要求当字符达到80个时,进行换行,不到80个就不要换行,不然会PE。
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
using namespace std;
int N;
char s[2010],c[2010];
int main()
{
scanf("%d",&N);
int a=0,b=N-1,count_hao=0;
for(int k=0;k<N;k++)
{
scanf("\n%c",&s[k]);
}
while(a<=b)
{
int flag = 0;
for(int i=0;a+i<=b;i++)
{
if(s[a+i]<s[b-i])
{
flag = 1;
break;
}
else if(s[a+i]>s[b-i])
{
flag = 0;
break;
}
}
if(flag) printf("%c",s[a++]);
else printf("%c",s[b--]);
count_hao++;
if(count_hao%80==0)
printf("\n");
}
if(count_hao%80==0)
printf("\n");
return 0;
}