思路分析:
将 ‘P’、‘A’、‘T’、‘e’、‘s’、‘t’ 六个字母分别统计个数,将六个字母为一组循环输出,并将次数减一。直到全为0。
也可以将每种字母拼成一串字符串,每次删除其中一个元素,直到六个字符串为空。笔者用的就是这种方案。
示例代码:
#include<iostream>
using namespace std;
int main() {
string P, A, T, e, s, t;
string str; cin >> str;
for (int i = 0; i < str.length(); i++) {
if (str[i] == 'P') P += 'P';
if (str[i] == 'A') A += 'A';
if (str[i] == 'T') T += 'T';
if (str[i] == 'e') e += 'e';
if (str[i] == 's') s += 's';
if (str[i] == 't') t += 't';
}
while (P != "" || A !="" || T != "" || e != "" || s != "" || t!="") {
if (P != "") cout << "P"; P.erase(0, 1);
if (A != "") cout << "A"; A.erase(0, 1);
if (T != "") cout << "T"; T.erase(0, 1);
if (e != "") cout << "e"; e.erase(0, 1);
if (s != "") cout << "s"; s.erase(0, 1);
if (t != "") cout << "t"; t.erase(0, 1);
}
return 0;
}