PTA_L1-023 輸出GPLT (20分)

L1-023 輸出GPLT (20分)

給定一個長度不超過10000的、僅由英文字母構成的字符串。請將字符重新調整順序,按GPLTGPLT…這樣的順序輸出,並忽略其它字符。當然,四種字符(不區分大小寫)的個數不一定是一樣多的,若某種字符已經輸出完,則餘下的字符仍按GPLT的順序打印,直到所有字符都被輸出。

輸入格式:
輸入在一行中給出一個長度不超過10000的、僅由英文字母構成的非空字符串。

輸出格式:
在一行中按題目要求輸出排序後的字符串。題目保證輸出非空。

輸入樣例:
pcTclnGloRgLrtLhgljkLhGFauPewSKgt

輸出樣例:
GPLTGPLTGLTGLGLL

完整代碼:

#include<iostream>
#include<cstring>
using namespace std;
int a[4];
int main()
{
    string s;
    char c[4]={'G','P','L','T'};
    cin>>s;
    int len=s.size();
    for(int i=0;i<len;i++)
    {
        if(s[i]=='G' || s[i]=='g')
        {
            a[0]++;
        }
        if(s[i]=='P' || s[i]=='p')
        {
            a[1]++;
        }
        if(s[i]=='L' || s[i]=='l')
        {
            a[2]++;
        }
        if(s[i]=='T' || s[i]=='t')
        {
            a[3]++;
        }
    }
    while(1)
    {
        for(int i=0;i<4;i++)
        {
            if(a[i]!=0)
            {
                cout<<c[i];
                a[i]--;
            }
        }
        if(a[0]==0 && a[1]==0 && a[2]==0 && a[3]==0)
            break;
    }
    return 0;
}

原題鏈接:
https://pintia.cn/problem-sets/994805046380707840/problems/994805113036587008

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章