给定一个长度不超过104的、仅由英文字母构成的字符串。请将字符重新调整顺序,按 PATestPATest… 这样的顺序输出,并忽略其它字符。当然,六种字符的个数不一定是一样多的,若某种字符已经输出完,则余下的字符仍按 PATest 的顺序打印,直到所有字符都被输出。
输入格式:
输入在一行中给出一个长度不超过104的、仅由英文字母构成的非空字符串。
输出格式:
在一行中按题目要求输出排序后的字符串。题目保证输出非空。
输入样例:
redlesPayBestPATTopTeePHPereatitAPPT
输出样例:
PATestPATestPTetPTePePee
思路:
水题。分别记录字符串中PATest五个字符的数量,然后按PATest的顺序遍历输出,直至个数全部为0。
代码:
#include<stdio.h>
int main(){
char ch;
int cnt_P=0,cnt_A=0,cnt_T=0,cnt_e=0,cnt_s=0,cnt_t=0;
while((ch=getchar())!='\n'){
switch(ch){
case 'P':
++cnt_P;break;
case 'A':
++cnt_A;break;
case 'T':
++cnt_T;break;
case 'e':
++cnt_e;break;
case 's':
++cnt_s;break;
case 't':
++cnt_t;break;
}
}
while(cnt_P||cnt_A||cnt_T||cnt_e||cnt_s||cnt_t){
if(cnt_P){
printf("P");
--cnt_P;
}
if(cnt_A){
printf("A");
--cnt_A;
}
if(cnt_T){
printf("T");
--cnt_T;
}
if(cnt_e){
printf("e");
--cnt_e;
}
if(cnt_s){
printf("s");
--cnt_s;
}
if(cnt_t){
printf("t");
--cnt_t;
}
}
return 0;
}