题解 | #字符串排序#
字符串排序
https://www.nowcoder.com/practice/5190a1db6f4f4ddb92fd9c365c944584
#include <iostream>
#include<string>
#include<queue>
using namespace std;
int main() {
string s;
while (getline(cin,s)) { // 注意 while 处理多个 case
queue<char> arr[26];
for(int i=0;i<s.size();i++)
{
if(('a'<=s[i])&&(s[i]<='z'))
{
arr[s[i]-'a'].push(s[i]);
}
if(('A'<=s[i])&&(s[i]<='Z'))
{
arr[s[i]-'A'].push(s[i]);
}
}
for(int i=0;i<s.size();i++)
{
if((('a'<=s[i])&&(s[i]<='z'))
||(('A'<=s[i])&&(s[i]<='Z')))
{
for(int j=0;j<26;j++)
{
if(!arr[j].empty())
{
s[i]=arr[j].front();
arr[j].pop();
break;
}
}
}
}
cout<<s<<endl;
}
}
// 64 位输出请用 printf("%lld")
海康威视公司福利 1137人发布
查看13道真题和解析