给定长度为N的字符串S,要构造一个长度为N的字符串T。T初始是空字符串。S由大写字母构成。
构造过程通过反复进行以下任意操作:
从S的头部删除一个字符,添加到T的尾部
从S的尾部删除一个字符,添加到T的尾部
请你构造出字典序尽可能小的字符串T(字典序是指首先比较第一个字符,如果不同则第一个字符
较小的字符串更小,如果相同则比较第二个字符,以此类推)
#include<bits/stdc++.h>
using namespace std;
char a[2020];
char b[2020];
int main()
{
int n;
cin>>n;
getchar();
int l=0;
int r=n-1;
for(int i=0;i<n;i++)
{
cin>>a[i];
}
int flag;
int sum=0;
while(l<=r)
{
for(int i=0;l+i<n;i++)
{
if(a[l+i]<a[r-i])
{
flag=1;
break;
}
else if(a[l+i]>a[r-i])
{
flag=0;
break;
}
}
if(flag) cout<<a[l++];
else cout<<a[r--];
sum++;
if(sum==n)
{cout<<endl;
break;
}
}
return 0;
}