【PAT乙级】1043 输出PATest

it2026-04-13  4

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

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

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

样例输入 redlesPayBestPATTopTeePHPereatitAPPT

样例输出 PATestPATestPTetPTePePee

C++代码

#include<bits/stdc++.h> using namespace std; int main(){ char c[10001]; cin.getline(c,10001); int a[6]={0}; for(int i=0;c[i]!='\0';i++){ switch(c[i]){ case 'P':a[0]++;break; case 'A':a[1]++;break; case 'T':a[2]++;break; case 'e':a[3]++;break; case 's':a[4]++;break; case 't':a[5]++;break; } } while(a[0]!=0||a[1]!=0||a[2]!=0||a[3]!=0||a[4]!=0||a[5]){ if(a[0]!=0){ printf("P"); a[0]--; } if(a[1]!=0){ printf("A"); a[1]--; } if(a[2]!=0){ printf("T"); a[2]--; } if(a[3]!=0){ printf("e"); a[3]--; } if(a[4]!=0){ printf("s"); a[4]--; } if(a[5]!=0){ printf("t"); a[5]--; } } return 0; }
最新回复(0)