PAT (Basic Level) Practise (中文)1043. 输出PATest(20)

  1. 输出PATest(20)

时间限制
400 ms
内存限制
65536 kB
代码长度限制
8000 B
判题程序
Standard
作者
CHEN, Yue
给定一个长度不超过10000的、仅由英文字母构成的字符串。请将字符重新调整顺序,按“PATestPATest….”这样的顺序输出,并忽略其它字符。当然,六种字符的个数不一定是一样多的,若某种字符已经输出完,则余下的字符仍按PATest的顺序打印,直到所有字符都被输出。

输入格式:

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

输出格式:

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

输入样例:
redlesPayBestPATTopTeePHPereatitAPPT
输出样例:
PATestPATestPTetPTePePee

思路:先遍历一遍字符串,统计PATest每个字母的个数,最后按顺序输出。

#include 
#include 

int main()
{
    char str[10001] = {0};
    gets(str);
    int numP = 0, numA = 0, numT = 0, num_e = 0, num_s = 0, num_t = 0;
    unsigned int i;
    for(i = 0; i < strlen(str); i++)
    {
        switch (str[i]){
        case 'P':numP++;continue;
        case 'A':numA++;continue;
        case 'T':numT++;continue;
        case 'e':num_e++;continue;
        case 's':num_s++;continue;
        case 't':num_t++;continue;
        default:continue;
        }
    }
    while(numP || numA || numT || num_e || num_s || num_t)
    {
        if(numP)
        {
            printf("P");
            numP--;
        }
        if(numA)
        {
            printf("A");
            numA--;
        }
        if(numT)
        {
            printf("T");
            numT--;
        }
        if(num_e)
        {
            printf("e");
            num_e--;
        }
        if(num_s)
        {
            printf("s");
            num_s--;
        }
        if(num_t)
        {
            printf("t");
            num_t--;
        }
    }

    printf("\n");
    return 0;
}

你可能感兴趣的:(PAT)