1043 输出PATest

1043 输出PATest

转跳点:🐏

1043 输出PATest 

给定一个长度不超过 10​4​​ 的、仅由英文字母构成的字符串。请将字符重新调整顺序,按 PATestPATest.... 这样的顺序输出,并忽略其它字符。当然,六种字符的个数不一定是一样多的,若某种字符已经输出完,则余下的字符仍按 PATest 的顺序打印,直到所有字符都被输出。

输入格式:

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

输出格式:

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

输入样例:

redlesPayBestPATTopTeePHPereatitAPPT

输出样例:

PATestPATestPTetPTePePee

这道题也是个计数的题目,分别统计下6个字母的个数,写一个统计函数,写一个输出函数,每次输出的时候都判断一下退出条件,所以还需要一个退出条件的函数。题目比较简单,所以就讲一下退出条件ε=ε=ε=(~ ̄▽ ̄)~。

题目可以知道,每一次输出必须先检查完毕所有的字母,才能进行下一次输出,所以我们结束输出的可能只有一种啦┏ (゜ω゜)=☞ 6个字母都为0的情况啦~,检查退出的函数就是超简单的循环,有非0值就返回的函数la~

AC代码:

#include <stdio.h>
#include <stdlib.h>

//退出条件
int cheak0(int arr[]);
//记录函数
void record(int arr[], char ch);
//输出函数
void print(int arr[]);

int main(void)
{
    char ch;
    int count[6] = {0};

    while ((ch = getchar()) != '\n')
    {
        record(count, ch);
    }

    while (cheak0(count))
    {
        print(count);
    }

    return 0;
}

int cheak0(int arr[])
{
    for (int i = 0; i < 6; i++)
    {
        if (arr[i])
        {
            return 1;
        }
    }
    return 0;
}

void record(int arr[], char ch)
{
    switch (ch)
    {
    case 'P':
        arr[0]++;
        break;
    case 'A':
        arr[1]++;
        break;
    case 'T':
        arr[2]++;
        break;
    case 'e':
        arr[3]++;
        break;
    case 's':
        arr[4]++;
        break;
    case 't':
        arr[5]++;
        break;
    }
}

void print(int arr[])
{
    for (int j = 0; j < 6; j++)
    {
        if (arr[j])
        {
            switch (j)
            {
            case 0:
                printf("P");
                arr[0]--;
                break;
            case 1:
                printf("A");
                arr[1]--;
                break;
            case 2:
                printf("T");
                arr[2]--;
                break;
            case 3:
                printf("e");
                arr[3]--;
                break;
            case 4:
                printf("s");
                arr[4]--;
                break;
            case 5:
                printf("t");
                arr[5]--;
                break;
            }
        }
    }
}

 

PTA不易,诸君共勉!

posted @ 2020-02-10 20:15  秦_殇  阅读(166)  评论(0编辑  收藏  举报