描述 输入一个字符串( 不超过 50000 位 不超过50000位),将其中的大写字母按照从大到小的顺序输出,小写按照从小到大输出。 输入 一行,一个字符串s。(不含空格) 输出 两行: 第一行将字符串s中的大写字母从大到小输出,用空格隔开; 第二行将字符串s中的小写字母从小到大输出,用空格隔开。
时间: 2024-02-12 08:07:19 浏览: 160
labview字符串的使用
以下是一个 C++ 的实现:
```cpp
#include <iostream>
#include <vector>
#include <algorithm>
#include <cctype>
using namespace std;
int main() {
string s;
cin >> s;
vector<char> upper, lower;
for (char c : s) {
if (isupper(c)) {
upper.push_back(c);
} else {
lower.push_back(c);
}
}
sort(upper.rbegin(), upper.rend()); // 大写字母从大到小排序
sort(lower.begin(), lower.end()); // 小写字母从小到大排序
for (char c : upper) {
cout << c << " ";
}
cout << endl;
for (char c : lower) {
cout << c << " ";
}
cout << endl;
return 0;
}
```
首先遍历字符串 s,将其中的大写字母和小写字母分别存储在两个 vector 中。然后对大写字母从大到小排序,对小写字母从小到大排序。最后分别输出两个 vector 中的元素即可。时间复杂度为 O(n log n)。
阅读全文