题解 | #字符串排序#
字符串排序
https://www.nowcoder.com/practice/5190a1db6f4f4ddb92fd9c365c944584
#include <iostream>
#include <vector>
using namespace std;
bool ischar(char c) {
if ((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z'))
return true;
else
return false;
}
int main() {
string s;
getline(cin, s);
int len = s.length();
vector<int> nochar;
vector<char> ischar1;
for (int i = 0; i < len; i++) {
if (!ischar(s[i])) {
nochar.push_back(i);
}
}
for (int j = 0; j < 26; j++) {
for(int i=0;i<len;i++)
{
if (s[i] - 'a' - j == 0 || s[i] - 'A' - j == 0) {
ischar1.push_back(s[i]);
}
}
}
for(int i=0,j=0,k=0;i<len;i++,j++,k++)
{
if (ischar(s[i])) {
cout<<ischar1[k];
j--;
}
else {
cout<<s[nochar[j]];
k--;
}
}
}
// 64 位输出请用 printf("%lld")