#include <bits/stdc++.h>
using namespace std;
int main() {
// 英文字符串 重置顺序(固定格式 删去其他字符
// 区分大小写
string str;
cin >> str;
int P = 0, A = 0, T = 0, e = 0, s = 0, t = 0;
// 统计不一样的字符 PATest
for(auto it : str){
if(it == ‘P‘)
P++;
else if(it == ‘A‘)
A++;
else if(it == ‘T‘)
T++;
else if(it == ‘e‘)
e++;
else if(it == ‘s‘)
s++;
else if(it == ‘t‘)
t++;
}
// 当字符存在则输出 直到所有字符都打印完
while(P ||A || T || e || s || t){
if(P)
P--, cout << ‘P‘;
if(A)
A--, cout << ‘A‘;
if(T)
T--, cout << ‘T‘;
if(e)
e--, cout << ‘e‘;
if(s)
s--, cout << ‘s‘;
if(t)
t--, cout << ‘t‘;
}
}
写的时候很习惯性地定义了foreach的变量有for(auto s : str),结果上面也有一个相同的变量用来统计 s 的个数,所以循环的时候统计的 s 就被覆盖了。