额,也没什么好说的吧,就是先数出来每个字母有多少个,然后按顺序输出,输出一个,计数减一,直到所有的都为零,就结束。
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
const int maxn = 10010;
int g,p,l,t;
int main()
{
char c;
while(~scanf("%c",&c) && c != '\n')
{
if(c == 'G' || c == 'g')
g++;
else if(c == 'P' || c == 'p')
p++;
else if(c == 'L' || c == 'l')
l++;
else if(c == 'T' || c == 't')
t++;
}
while(g || p || l || t)
{
if(g)
{
printf("G");
g--;
}
if(p)
{
printf("P");
p--;
}
if(l)
{
printf("L");
l--;
}
if(t)
{
printf("T");
t--;
}
}
return 0;
}