PAT乙级 1043 输出PATest

给定一个长度不超过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;
} 

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_37205425/article/details/84135018