题目:
思路:
用四个整形变量统计四个字母出现的个数,按GPLT顺序输出,每输出一个字母,这个字母的个数就减一,为0了就不输出。一开始我把第二个循环里面的if都写成else if了,结果输出GGGGGPPLLLLLLTTT。。。因为if和else if 只会执行其中之一。。。
上代码:
#include <iostream> using namespace std; int main() { string s; int g=0,p=0,l=0,t=0; cin>>s; for(int i=0;i<s.length();i++) { if(s[i]=='g'||s[i]=='G') { g++; }else if(s[i]=='p'||s[i]=='P'){ p++; }else if(s[i]=='l'||s[i]=='L'){ l++; }else 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; }