美文网首页PAT
1043.输出PATest

1043.输出PATest

作者: yzbkaka | 来源:发表于2018-08-15 22:05 被阅读20次

    题目描述

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

    输入描述

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

    输出描述

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

    输入例子

    redlesPayBestPATTopTeePHPereatitAPPT

    输出例子

    PATestPATestPTetPTePePee

    我的代码

    #include<stdio.h>
    #include<string.h>
    int main(){
        char a[10001];
        int b[7]={0},i,len,max;
        scanf("%s",a);
        len=strlen(a);
        
        for(i=0;i<len;i++){
            if(a[i]=='P'){
                b[0]++;
            }
            if(a[i]=='A'){
                b[1]++;
            }
            if(a[i]=='T'){
                b[2]++;
            }
            if(a[i]=='e'){
                b[3]++;
            }
            if(a[i]=='s'){
                b[4]++;
            }
            if(a[i]=='t'){
                b[5]++;
            }
        }
        max=b[0];
        for(i=0;i<6;i++){
            if(b[i]>max){
                max=b[i];
            }
        }
        
        do{
            if(b[0]!=0){
                printf("P");
                b[0]--;
            }
            if(b[1]!=0){
                printf("A");
                b[1]--;
            }
            if(b[2]!=0){
                printf("T");
                b[2]--;
            }
            if(b[3]!=0){
                printf("e");
                b[3]--;
            }
            if(b[4]!=0){
                printf("s");
                b[4]--;
            }
            if(b[5]!=0){
                printf("t");
                b[5]--;
            }
            max--;
        }while(max!=0);
        
        return 0;
    }
    

    我的分析

    这道题在开始的时候稍微花了一点时间。我的思路是先统计输入的字符串中PATest每个字母分别有多少个,找出其中次数最多的赋值给max,然后do-while循环开始按照顺序输出,每输出一次则相应的次数就要减一次,每循环完一次max就要减一次,循环一直到max=0为止。

    相关文章

      网友评论

        本文标题:1043.输出PATest

        本文链接:https://www.haomeiwen.com/subject/wdsgbftx.html