输入格式:
输入在一行中给出一个长度不超过 104 的、仅由英文字母构成的非空字符串。
输出格式:
在一行中按题目要求输出排序后的字符串。题目保证输出非空。
输入样例:
redlesPayBestPATTopTeePHPereatitAPPT
输出样例:
PATestPATestPTetPTePePee
解题思路:
通过map将PATest
每个字母统计对应其个数,使用while
循环逐一输出 每个字母输出依次对应的value
- 1 直到所有key
对应的value
都为0,完成全部输出。
解题代码:
#include <iostream>
#include <map>
using namespace std;
int main(){
string s;
cin >> s;
map<char, int> m;
for(int i = 0; i < s.size(); i++){
if(s[i] == 'P' || s[i] == 'A' || s[i] == 'T' || s[i] == 'e' || s[i] == 's' || s[i] == 't'){
m[s[i]]++;
}
}
while(m['P'] > 0|| m['A'] > 0 || m['T'] > 0 || m['e'] > 0 || m['s'] > 0 || m['t'] > 0){
if(m['P'] -- > 0) cout << 'P';
if(m['A'] -- > 0) cout << 'A';
if(m['T'] -- > 0) cout << 'T';
if(m['e'] -- > 0) cout << 'e';
if(m['s'] -- > 0) cout << 's';
if(m['t'] -- > 0) cout << 't';
}
return 0;
}