L1-023 输出GPLT (C++解决,含题解)
生活随笔
收集整理的這篇文章主要介紹了
L1-023 输出GPLT (C++解决,含题解)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
給定一個長度不超過10000的、僅由英文字母構成的字符串。請將字符重新調整順序,按GPLTGPLT....這樣的順序輸出,并忽略其它字符。當然,四種字符(不區分大小寫)的個數不一定是一樣多的,若某種字符已經輸出完,則余下的字符仍按GPLT的順序打印,直到所有字符都被輸出。
輸入格式:
輸入在一行中給出一個長度不超過10000的、僅由英文字母構成的非空字符串。
輸出格式:
在一行中按題目要求輸出排序后的字符串。題目保證輸出非空。
樣例:">樣例:">樣例:">樣例:">樣例:">樣例:">輸入樣例:
pcTclnGloRgLrtLhgljkLhGFauPewSKgt
輸出樣例:
GPLTGPLTGLTGLGLL
題解:先審題輸入沒有為難大家,輸出開始惡心人。首先觀察發現大小寫的字母輸出的時候按大寫算,那么就需要把小寫的轉化成大寫,大寫的不變。然后按照GPLT的順序,就在限制條件的時候順便加順序。
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;int main(void)
{
string s;
cin>>s;
ll G=0,P=0,L=0,T=0;
for(int i=0;i<s.length();i++)
{
//小寫改大寫
if(s[i]=='G'||s[i]=='g')
G++;
if(s[i]=='P'||s[i]=='p')
P++;
if(s[i]=='L'||s[i]=='l')
L++;
if(s[i]=='T'||s[i]=='t')
T++;
}while(G>0||P>0||L>0||T>0)
{
//在判斷條件里面規定順序
if(G>0)
{
cout<<"G";
G--;
}
if(P>0)
{
cout<<"P";
P--;
}
if(L>0)
{
cout<<"L";
L--;
}
if(T>0)
{
cout<<"T";
T--;
}}return 0;
}
?
總結
以上是生活随笔為你收集整理的L1-023 输出GPLT (C++解决,含题解)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 山西连续几日暴雨,气温最低十度,已有多人
- 下一篇: L1-027 出租 (C++暴力解法)