7-7 输出GPLT(20 分)

xiaoxiao2021-02-28  67

题目链接 给定一个长度不超过10000的、仅由英文字母构成的字符串。请将字符重新调整顺序,按GPLTGPLT….这样的顺序输出,并忽略其它字符。当然,四种字符(不区分大小写)的个数不一定是一样多的,若某种字符已经输出完,则余下的字符仍按GPLT的顺序打印,直到所有字符都被输出。 输入格式: 输入在一行中给出一个长度不超过10000的、仅由英文字母构成的非空字符串。 输出格式: 在一行中按题目要求输出排序后的字符串。题目保证输出非空。 输入样例: pcTclnGloRgLrtLhgljkLhGFauPewSKgt 输出样例: GPLTGPLTGLTGLGLL

#include<iostream> #include<algorithm> using namespace std; int main(){ int gcnt,pcnt,lcnt,tcnt; string s; getline(cin,s); gcnt = count(s.begin(),s.end(),'g') + count(s.begin(),s.end(),'G'); pcnt = count(s.begin(),s.end(),'p') + count(s.begin(),s.end(),'P'); lcnt = count(s.begin(),s.end(),'l') + count(s.begin(),s.end(),'L'); tcnt = count(s.begin(),s.end(),'t') + count(s.begin(),s.end(),'T'); while(gcnt||pcnt||lcnt||tcnt){ if(gcnt){ printf("G"); gcnt--; } if(pcnt){ printf("P"); pcnt--; } if(lcnt){ printf("L"); lcnt--; } if(tcnt){ printf("T"); tcnt--; } } printf("\n"); return 0; }
转载请注明原文地址: https://www.6miu.com/read-2621122.html

最新回复(0)