样例:">样例:">样例:">样例:_l1-023 输出gpltc++">
当前位置:   article > 正文

L1-023 输出GPLT (C++解决,含题解)_l1-023 输出gpltc++

l1-023 输出gpltc++

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

输入格式:

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

输出格式:

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

样例:">样例:">样例:">样例:">样例:">样例:">输入样例:

pcTclnGloRgLrtLhgljkLhGFauPewSKgt

输出样例:

GPLTGPLTGLTGLGLL

题解:先审题输入没有为难大家,输出开始恶心人。首先观察发现大小写的字母输出的时候按大写算,那么就需要把小写的转化成大写,大写的不变。然后按照GPLT的顺序,就在限制条件的时候顺便加顺序。

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. typedef long long ll;
  4. int main(void)
  5. {
  6. string s;
  7. cin>>s;
  8. ll G=0,P=0,L=0,T=0;
  9. for(int i=0;i<s.length();i++)
  10. {
  11. //小写改大写
  12. if(s[i]=='G'||s[i]=='g')
  13. G++;
  14. if(s[i]=='P'||s[i]=='p')
  15. P++;
  16. if(s[i]=='L'||s[i]=='l')
  17. L++;
  18. if(s[i]=='T'||s[i]=='t')
  19. T++;
  20. }
  21. while(G>0||P>0||L>0||T>0)
  22. {
  23. //在判断条件里面规定顺序
  24. if(G>0)
  25. {
  26. cout<<"G";
  27. G--;
  28. }
  29. if(P>0)
  30. {
  31. cout<<"P";
  32. P--;
  33. }
  34. if(L>0)
  35. {
  36. cout<<"L";
  37. L--;
  38. }
  39. if(T>0)
  40. {
  41. cout<<"T";
  42. T--;
  43. }
  44. }
  45. return 0;
  46. }

 

本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/232703
推荐阅读
  

闽ICP备14008679号