题解 | #字符串排序#
字符串排序
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")