#include <bits/stdc++.h> #include <cctype> #include <vector> using namespace std; int main() { string s; while(getline(cin,s)) { vector<pair<char,int>> v; pair<char,int> one; vector<bool> flag(s.length()); //先扫描一遍,将小写改成大写的同时,做个标记 for(int i=0;i<s.length();i++) { if(islower(s[i])||isupper(s[i])) { char c=s[i]; if(islower(s[i])) { c=s[i]-'a'+'A'; flag[i]=1;//表示从小写改成了大写 } one.first=c; one.second=i; v.push_back(one); } } stable_sort(v.begin(),v.end(),[](const pair<char,int> &a,const pair<char,int> &b){ return a.first<b.first; }); int index=0; for(int i=0;i<s.length();i++) { if(islower(s[i])||isupper(s[i])) { if(flag[v[index].second]) v[index].first=(v[index].first-'A'+'a'); cout<<v[index].first; index++; } else cout<<s[i]; } } } // 64 位输出请用 printf("%lld")