#include <iostream> using namespace std; // 结构体越用越爽,简单无脑,且不用函数 typedef struct { string s; // 记录大小写顺序 int count; // 记录个数 }S; int main() { string s; while (getline(cin, s)) { S t[26]; // 下标对应字母 for (int i = 0; i < 26; i++) t[i].count = 0; for (int i = 0; i < s.size(); i++) { if (s[i] <= 'z' && s[i] >= 'a') { t[s[i] - 'a'].count++; t[s[i] - 'a'].s += '0'; } else if (s[i] >= 'A' && s[i] <= 'Z') { t[s[i] - 'A'].count++; t[s[i] - 'A'].s += '1'; } } int j = 0, k = 0; for (int i = 0; i < s.size(); i++) { if ((s[i] <= 'z' && s[i] >= 'a') || (s[i] >= 'A' && s[i] <= 'Z')) { while (t[j].count == 0) { j++; k = 0; //count = 0说明是下一个字母了,所以k要为0 } if ((t[j].s)[k] == '0') printf("%c",j + 'a'); if ((t[j].s)[k] == '1') printf("%c", j + 'A'); t[j].count--; k++; } else { cout << s[i]; } } cout << endl; } }