给定一个长度不超过10000的、仅由英文字母构成的字符串。请将字符重新调整顺序,按GPLTGPLT…这样的顺序输出,并忽略其它字符。当然,四种字符(不区分大小写)的个数不一定是一样多的,若某种字符已经输出完,则余下的字符仍按GPLT的顺序打印,直到所有字符都被输出。
输入格式:
输入在一行中给出一个长度不超过10000的、仅由英文字母构成的非空字符串。
输出格式:
在一行中按题目要求输出排序后的字符串。题目保证输出非空。
输入样例:
pcTclnGloRgLrtLhgljkLhGFauPewSKgt
输出样例:
GPLTGPLTGLTGLGLL
主要考查对应输出,不是特别难,代码应该能看懂。
#include <iostream>
using namespace std;
//统计GPLT个数,不区分大小写
int main()
{
string str;
cin >> str;
int count_G = 0;
int count_P = 0;
int count_L = 0;
int count_T = 0;
for(int i = 0; i < str.length(); i++){
if(str.at(i) == 'G'|| str.at(i) == 'g'){
count_G++;
}
else if(str.at(i) == 'P' || str.at(i) == 'p'){
count_P++;
}
else if(str.at(i) == 'L' || str.at(i) == 'l'){
count_L++;
}else if(str.at(i) == 'T' || str.at(i) == 't'){
count_T++;
}
}
while(count_G || count_P || count_L || count_T){
if(count_G != 0){
cout<<'G';
count_G--;
}
if(count_P != 0){
cout<<'P';
count_P--;
}
if(count_L != 0){
cout<<'L';
count_L--;
}
if(count_T != 0){
cout<<'T';
count_T--;
}
}
return 0;
}