本题没有什么难度,直接对每个字母进行计数,再找出最大值,按次序输出即可
#include<cstdio>
#include<iostream>
using namespace std;
int main()
{
int a[6]={0};
string s;
//freopen("1043.txt","r",stdin);
cin>>s;
for(int i=0;i<s.length();i++)
{
if(s[i]=='P')
a[0]++;
else if(s[i]=='A')
a[1]++;
else if(s[i]=='T')
a[2]++;
else if(s[i]=='e')
a[3]++;
else if(s[i]=='s')
a[4]++;
else if(s[i]=='t')
a[5]++;
}
int Max=a[0];
for(int i=1;i<6;i++)
{
if(Max<a[i])
Max=a[i];
}
for(int i=0;i<Max;i++)
{
if(a[0]!=0)
{
printf("P");a[0]--;
}
if(a[1]!=0)
{
printf("A");a[1]--;
}
if(a[2]!=0)
{
printf("T");a[2]--;
}
if(a[3]!=0)
{
printf("e");a[3]--;
}
if(a[4]!=0)
{
printf("s");a[4]--;
}
if(a[5]!=0)
{
printf("t");a[5]--;
}
}
return 0;
}