题目

思路
你保证在开头的字母是降序就好了
开头是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;
}
这篇博客介绍了一种将字符串数组按照首字母降序排列的算法。通过遍历输入的字符,将其转换为大写并插入到已排序的字符串中,实现了O(n)的时间复杂度。代码示例展示了如何在C++中完成这一操作。

被折叠的 条评论
为什么被折叠?



