题意给定一个字符串,如果头比尾字典序小,选头,否就选尾,如果相同,就比较下一位第二个和倒数第二个,直到选字典序小的那边。然后输出。
贪心思想,码力还是太弱了,这么简单的题还想了一会!
#include<iostream>
#include<cstdio>
using namespace std;
int n;
char str[2020];
void func()
{
int l=0,r=n-1,cnt=0;
while(l<=r)
{
int flag=0;
for(int i=0;i+l<=r;i++)
{
if(str[i+l]<str[r-i])
{
flag=1;
break;
}
else if(str[i+l]>str[r-i])
{
flag=0;
break;
}
}
if(flag)
cout<<str[l++];
else
cout<<str[r--];
cnt++;
if(cnt==80)
{
cout<<endl;
cnt=0;
}
}
}
int main()
{
while(~scanf("%d",&n))
{
for(int i=0;i<n;i++)
cin>>str[i];
func();
}
}