1043 输出PATest

#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 找冠军的题目很像。

原文地址:https://www.cnblogs.com/kalicener/p/12459101.html