记录值得记录下的事情

PAT-GPLT_L1-023. 输出GPLT

L1-023. 输出GPLT

时间限制 内存限制 代码长度限制 判题程序 作者
150ms 65536kB 8000B Standard 陈越

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

输入格式:

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

输出格式:

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

输入样例:

pcTclnGloRgLrtLhgljkLhGFauPewSKgt

输出样例:

GPLTGPLTGLTGLGLL

Code [C]

#include <stdio.h>
#include <string.h>
int main()
{
    char a[10000];
    scanf("%s", &a);
    int b[4];
    int i, size, str, sum=0;
    size=strlen(a);
    for(i=0; i<size; i++)
    {
        str=toupper(a[i]);
        switch(str)
        {
            case 'G':
                b[0]++;
                break;
            case 'P':
                b[1]++;
                break;
            case 'L':
                b[2]++;
                break;
            case 'T':
                b[3]++;
                break;
        }
        if(str=='G'||str=='P'||str=='L'||str=='T')
            sum++;
    }
    char c[4]={'G', 'P', 'L', 'T'};
    while(sum>0)
    {
        for(i=0; i<4; i++)
        {
            if(b[i]!=0)
            {
                printf("%c", c[i]);
                b[i]--;
                sum--;
            }
        }
    }
    return 0;
}

标签: C, PAT, GPLT

添加新评论