5-5 输出GPLT (20分)

来源:互联网 发布:java获取map中的泛型 编辑:程序博客网 时间:2024/05/23 23:42
5-5 输出GPLT   (20分)

给定一个长度不超过10000的、仅由英文字母构成的字符串。请将字符重新调整顺序,按GPLTGPLT....这样的顺序输出,并忽略其它字符。当然,四种字符(不区分大小写)的个数不一定是一样多的,若某种字符已经输出完,则余下的字符仍按GPLT的顺序打印,直到所有字符都被输出。

输入格式:

输入在一行中给出一个长度不超过10000的、仅由英文字母构成的非空字符串。

输出格式:

在一行中按题目要求输出排序后的字符串。题目保证输出非空。

输入样例:

pcTclnGloRgLrtLhgljkLhGFauPewSKgt

输出样例:

GPLTGPLTGLTGLGLL
这个题是统计题,当时没想出来可能是做题太少了。、。。
#include<stdio.h>#include<string.h>char b[4]={'G','P','L','T'};int main(){char a[10010];int c[4]={0};gets(a);int ch=strlen(a);for(int i=0;i<ch;i++){if(a[i]=='g'||a[i]=='G'){c[0]++;}if(a[i]=='p'||a[i]=='P')c[1]++;if(a[i]=='L'||a[i]=='l')c[2]++;if(a[i]=='t'||a[i]=='T'){c[3]++;}}for(int i=0;;i++){for(int j=0;j<4;j++){if(c[j]!=0){printf("%c",b[j]);c[j]--;}}if(c[0]==0&&c[1]==0&&c[2]==0&&c[3]==0)break;}}