1. 程式人生 > >PAT乙級 1043 輸出PATest

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;
} 

在這裡插入圖片描述