输出GPLT

L1-023 输出GPLT (20 分)
 

给定一个长度不超过10000的、仅由英文字母构成的字符串。请将字符重新调整顺序,按GPLTGPLT....这样的顺序输出,并忽略其它字符。当然,四种字符(不区分大小写)的个数不一定是一样多的,若某种字符已经输出完,则余下的字符仍按GPLT的顺序打印,直到所有字符都被输出。

输入格式:

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

输出格式:

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

输入样例:

pcTclnGloRgLrtLhgljkLhGFauPewSKgt

输出样例:

GPLTGPLTGLTGLGLL





 1 #include <iostream>
 2 using namespace std;
 3 int main(){
 4     string s1;
 5     int a[4] = {0};
 6     cin >> s1;
 7     for(int i = 0; i < s1.size(); i++){
 8         if(s1[i] == 'G' || s1[i] == 'g'){
 9             a[0]++;
10         }else if(s1[i] == 'P' || s1[i] == 'p'){
11             a[1]++;
12         }else if(s1[i] == 'L' || s1[i] == 'l'){
13             a[2]++;
14         }else if(s1[i] == 'T' || s1[i] == 't'){
15             a[3]++;
16         }
17     }
18     while(a[0] != 0 || a[1] != 0 || a[2] != 0 || a[3] != 0){
19         for(int i = 0; i < 4; i++){
20             if(a[i]){
21                 switch(i){
22                     case 0: cout << 'G'; break;
23                     case 1: cout << 'P'; break;
24                     case 2: cout << 'L'; break;
25                     case 3: cout << 'T'; break;
26                 }
27                 a[i]--;
28             }
29         }    
30     }
31     return 0;
32 }
 
原文地址:https://www.cnblogs.com/AGoodDay/p/10606361.html