题目
思路
你保证在开头的字母是降序就好了
开头是C,以C为基准
如果下一个单词比C大比如说G,就把G放在B前,
然后以G作为新的基准
下一个单词比G大就放在G前面,比G小放在末尾
复杂度O(n)吧
代码
#include<iostream>
using namespace std;
int main()
{
string a;
char c = getchar();
while(c != EOF)
{
if(c >= 'a' && c <= 'z')
{
c -= 'a';
c += 'A';
}
if(a.empty())
{
a += c;
}
else
{
if(c >= a[0])
{
a.insert(0,1,c);
}
else
{
a += c;
}
}
c = getchar();
}
cout << a <<endl;
return 0;
}