#include <iostream> #include<string> using namespace std; int su(int a[], int n)//定义一个函数用于计算总和。 { int sum = 0; for (int i = 0; i < n; i++) sum += a[i]; return sum; } int main() { int a[6] = { 0 }, max = 0; string str; cin >> str; for (int i = 0; i < str.size(); i++) { if (str[i] == 'P')a[0]++; else if(str[i] == 'A')a[1]++; else if (str[i] == 'T')a[2]++; else if (str[i] == 'e')a[3]++; else if (str[i] == 's')a[4]++; else if (str[i] == 't')a[5]++; } while (su(a, 6)!=0) {//如果和为0,说明已经输出完成了 if (a[0] != 0) { cout << "P"; a[0]--; } if (a[1] != 0) { cout << "A"; a[1]--; } if (a[2] != 0) { cout << "T"; a[2]--; } if (a[3] != 0) { cout << "e"; a[3]--; } if (a[4] != 0) { cout << "s"; a[4]--; } if (a[5] != 0) { cout << "t"; a[5]--; } } }
这种题目一定要去繁就简,题目只要求输出“PATest”那就只考虑则6个字母,这个题目和1047 找冠军的题目很像。